web-dev-qa-db-ja.com

Excelのセルの長さの制限

Excelは、プログラムで作成したファイルの一部を開くことを拒否しています。特定の列の文字列が非常に長い(最大1850文字)ために吐き出されることが起こっていると思いますが、トラブルシューティングのために文字列を短くすると(900文字)開きます。

質問#1:セルに入れることができる最も長い文字列は何ですか?一部のグーグルの結果は1024または7,000ishと言っていますが、1000は長すぎることがわかりました。

質問2:XML形式とXLS形式の両方でファイルを書き込もうとしましたが、どちらにも同じ文字列長の問題があります。 1850の長さの文字列に合わせることができるExcelが読み取る形式はありますか?

6
rlb.usa

this によると、Excel 2003ではセルあたり1,000文字の制限がありましたが、Excel2007ではセルあたり32k文字に増加しました。プログラムがプログラムでExcel2003(.xls)を作成している場合、 Excel 2007(.xlsx)ファイルの場合、.xls形式はセルあたり1,000文字を超える文字をサポートしていないため、これが問題の原因である可能性があります。

Excel 2003の制限は関係しないので、XMLまたはXLS形式が直接Excel 2007に入る問題は発生しないはずですが、Excel 2007を所有していないため、テストできませんが、うまくいけば、関係なく役に立ちました。

3
Jarvin

Excel 2003でもセル内の32,767文字を簡単に処理できますが、Excel 2007より前のバージョンでは、セル内の最初の1024文字のみが表示されますMSソース )。

911文字で文字列を切り捨てる既知の問題が発生した可能性があります。 ADO接続を介してデータを転送するときに、これを以前に経験しました。

次のリンクはExcel2003に関連していますが、確かに同じ問題のように聞こえます。

http://support.Microsoft.com/kb/818808/en-us

6
Lunatik

公式のExcelの制限では、問題はないとされています。

http://office.Microsoft.com/en-us/Excel-help/Excel-specifications-and-limits-HP010073849.aspx

3
Adam Butler

ADOからデータを取得する場合は、以下のコードを試してください。それは私のために働いた。

Activecell.value=LEFT(YourRecordset("FieldName"), LEN(YourRecordset("FieldName")))

基本的に、フィールドのコンテンツ全体を取得しますが、方法は異なります。コンテンツの長さが900を超えているため(私の経​​験では)、別の方法を使用する必要があります。 LEFT関数に固執する必要はありません。 RIGHT関数も機能します。

1
Tom Pham

Excel 2013(およびExcel 2007以降)では、1つのセルに表示される文字列の長さは1024文字です。これは、VBAで作成された長い文字列を単一のExcelセルに書き込んだときに偶然に発見されました。これは、データを含む列の最後のセルでした。右側のセルにある長い文字列の通常の表示は、1024文字で終了しました。ただし、len関数は文字列の実際のサイズを正しく返し、文字列(電子メールアドレスのリスト)をコピーしてOutlookに貼り付けると正しい文字列が得られました。 Excel 2007以降で使用できる長い文字列は正常に機能しているようですが、完全には表示されません。

1
LSC