CSVからExcelへのデータインポートのサイズ制限を増やす


12

Excelにインポートするcsvファイルに大量のデータがありますが、ほとんどは問題ありませんが、列の1つに最大1000文字のデータが含まれています。残念ながら、Excelは必要以上に多くのデータがあると想定し、短く(255文字で)カットしているようです。

この制限を増やしてすべてのデータを保持するにはどうすればよいですか?


「残念ながら、Excelは必要以上に多くのデータを持っていると仮定して、それを短縮しているように思われます」とはどういう意味ですか。正しく表示されていませんか?=LEN(A1)A!にExcelを入力するとどうなりますか。あなたのテキストへの参照ですか?
ピーターアルバート

255と表示され、データを数式入力ボックスで見ると、突然停止します。オープンオフィスで完全なデータを表示できますが、Excelに貼り付けるとすぐに255文字に制限されるようです。私がオープンオフィスを使用していない理由は、データとして貼り付けるか、その中でvlookupを実行できるためです。
SwiftD

Excelは、255文字を超えるテキストを処理できます。ただし、セルがVBAで埋められている場合は、少し複雑です。あなたのソースは何ですか?どうやってExcelに入れますか?
ピーターアルバート

magentoからcsvをエクスポートしています。オブジェクト指向で開くと、全文が表示されます。Excelで開くと、そのカットショート。また、OOからExcelに貼り付けると短くなり、セルに手動で入力できなくなります。セルを離れるとすぐに同じポイントで切り取られます。
SwiftD

たぶん、CSVに何か問題があるのでしょうか?質問を更新して、いくつかの行を投稿できますか?また、マシンの区切り文字と区切り文字の設定が機能し始めている可能性がありますか?
Jan Doggen

回答:


13

Excelには奇妙なバグがあります。ここでそれを回避する方法を説明します(修正せず、回避するだけです)。MSOfficeプログラマーによってすぐに修正されるかもしれません。Excel 2013で修正されたのかもしれませんが、まだ開いていません。

だから、これが問題です。

テキストセルの最大長は32767で、問題ありません。

数値セルの最大長は255で、問題ありません。

しかし、数値パーサーを呼び出し、失敗してからテキストパーサーを呼び出すセルがある場合、ここに大きな混乱があります。

例えば:

...,"This is a cell with 30,000 characters........",...

働くでしょう。

ただし、次のように、最初に少しマイナスを入れると

...,"-This is a cell with 30,000 characters........",...

EXCELでは負の数であると見なされるため、最初のテキスト文字は255文字しか表示されません。

それが役に立てば幸い。


3
これは私が今まで商用ソフトウェアで見た中で最も奇妙で最も愚かなバグです。文字通り、私はこの種のsh * tに対してどのようにあなたが地球上で支払うことができるかを私を狂気に駆り立てています。
アストロフアンル14年

非常に良い説明、ありがとう。残念ながら、3年後-バグはExcel 2016にまだ存在していることを確認できます
...-BurninLeo

@BurninLeo、元の回答の3日後に、MS Office開発者センターにチャットで電話をかけ、このスーパーユーザートピックへのリンクを提供したと言えます。
khitron23

この問題は、Excel 365 ProPlusバージョン1902で解決されたようです。
Carsten Franke

1

ダッシュで始まることもある長いテキストフィールドを持つcsvファイルでこの問題に遭遇しました。Excelのインポートは、ダッシュのためにフィールドを数値として処理しようとするようであり、数値インポートはそれを255文字にトリミングします。それが失敗すると、テキストとしてインポートされますが、最初の255文字のみがインポートされます。

この問題を回避するには、csvを開くだけでなくインポートする必要がありました。インポートウィザードで、問題が発生している列を選択し、その種類を[全般]から[テキスト]に切り替えました。そうすると、Excelはそれを数値として解析しようとさえせず、列幅全体を取得します。


0

まず、これを解決するためにあなたの助けてくれてありがとう。Excelはセルに255文字以上を非常にうまく収容できることがわかります(ラムを持っている場合は前述のように32,767まで可能です)。

では、なぜ仕事がなかったのでしょうか?

簡単な答えはわかりません。データを初めてExcelに持ち込んだとき、csvとしてエクスポートし、Excelで開きました。これにより、列が短くなります(255)。(csvファイルには、メモ帳で表示したときにすべてのデータが含まれていましたが、Excelで再度保存したときは含まれていませんでした)。

問題の列にはセミコロンが含まれていましたが、これはカットオフポイント(常に255)に対応していなかったため、私は使用しませんでした。区切り文字として。

私の解決策は、xlsファイルとしてエクスポートすることでした。その後、これは完全なデータを含むcsvファイルとして正常に保存されました。

ここに何が問題なのか正確にはわからないにもかかわらず、これが誰かの助けになることを願っています。


シンプルなグーグルは、同じ問題を抱える人々の多くのフォーラム投稿をもたらします。これはおそらく、Excel CSVインポートルーチンの単なるバグです。
マーカスチャン

0

http://office.microsoft.com/en-us/excel-help/excel-specifications-and-limits-HP010342495.aspxによると、Excel 2010は255文字の列幅のみをサポートしています。

編集:これはあなたが話している問題、Webweaverですか?[書式]> [セル]> [テキストの折り返し]は、残りの文字を表示しますか?

編集:気にしないで、この答えは目の前の問題とは無関係です(おそらく何らかの形で関係しているかもしれませんが、質問には答えていません)


いいえ、それは列幅です。同じテーブルから、「セルに含めることができる文字の合計数」は32,767文字です。
ヴィッキー

@Vicky、それは質問者が経験している問題ではありませんか?または、質問を誤って解釈しましたか?
マーカスチャン

@nixda real?はい、本当に迷惑です。Excelは255文字以上を処理できないとは考えられません。これを行う方法があります!
SwiftD

@Marcus列幅の意味がわかりません。これは、データが存在しない表示の問題だけではありません。短くなります。CSVとして保存すると、データはありません。len(cell)を実行すると、結果は255になります
。– SwiftD

@MarcusChan、文字数は32767に制限する必要があります。ユーザーは255文字に制限されています。あなたが言及しているのは、列の表示方法に関係する列幅で、OPの問題ではありません。
ヴィッキー

0

通常、これは古い制限であり、Excelの最新バージョン(とにかく2013)には適用されなくなりました。ただし、ワークブックが最初に古いバージョンで作成された場合、古いバージョンで変更された(つまり、特定のプロパティと属性でインスタンス化された)セルオブジェクトは、明らかに、新しいバージョンのExcelで開いても255文字の制限を保持します!

修正:

  1. ワークシート上の別の未使用のセルで最新バージョンのExcelを使用して、問題のセルに必要な書式設定やマージ範囲の条件を再作成します。
  2. 一般形式またはテキスト形式に設定されていることを確認してください。
  3. セルの新しい再作成バージョン(または結合範囲)を切り取りまたはコピーして貼り付け、古い不良バージョンの上に貼り付けます。
  4. これで、セルにデータを入力するときに、問題が発生しなくなります。

その後、WebweaverDが投稿したとき、彼はcsvインポートの問題の解決策を見つけました。また、セルがVBAを介して入力されている場合、他の応答で言及されているように、状況はより複雑になります。ただし、データが手動で入力されている場合、または別のアプリケーションからレガシーブックにコピー/貼り付けされている場合、このレガシーセル属性の問題が原因である可能性があります。


0

私は同様の問題を抱えていました、私の値はすべて形式でした(数字を数字に、テキストをテキストに変換できるようにするために、長いテキストをカットしました:

...,="Long Text........",...

=を先頭に付けると、最初の255文字しか表示されません。これは、EXCELが数字であると見なすため、先頭に=を削除するためです。

それが役に立てば幸い。


1
これは、他の誰かがすでに答えで言及しているものとは異なりますか?これにはフラグを立てる必要があります。自分で行うには十分な担当者がいないため、モデレーターにコメントに変換するよう依頼することができます。
ポン引きジュースIT

0

回避策(Excel 2016で利用可能)...

オプションA.テキストインポートウィザードでExcelを実行します(.txtファイル拡張子などを使用するか、.xls拡張子を使用し、警告を受け入れ、最初の列を選択し、データ=> 'テキストから列へ')。次に、ウィザードの終わり近くで列タイプを「一般」から「テキスト」に変更します。

オプションB. Get&Transformを使用します。データ=>新しいクエリ=>ファイルから=> CSVから。


あなたが述べていることを裏付けるこの回答への参照を追加することを検討してください。
ピンプジュースIT
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.