[解決済み] Excel用CSVファイルの生成、値の中に改行を入れるには?
質問
Excel用のファイルを作成する必要があるのですが、このファイルには複数の行を含む値があります。
また、非英語のテキストが含まれているため、ファイルはユニコードでなければなりません。
今、生成しているファイルはこんな感じです。(UTF8で、英語以外のテキストが混在しており、行数も多い)
Header1,Header2,Header3
Value1,Value2,"Value3 Line1
Value3 Line2"
複数行の値は二重引用符で囲まれ、その中に通常の日常的な改行があることに注意してください。
Webで調べたところでは、これはうまくいくはずなのですが、少なくともExcel 2007とUTF8ファイルではうまくいきません。Excelは、3行目を最初のデータ行の2行目としてではなく、2行目のデータとして扱います。
これは顧客のマシンで実行する必要があり、私は顧客のExcelのバージョンを制御できないので、Excel 2000以降で動作するソリューションが必要です。
ありがとうございます。
EDIT: 2つのCSVオプション、1つはExcel用(ユニコード、タブ区切り、フィールドに改行なし)、もう1つはそれ以外用(UTF8、標準CSV)にして、私の問題を解決した""。
私が探していたものではありませんが、少なくとも(今のところ)うまくいっています。
解決方法は?
フィールドの先頭にスペースを入れるのは、そのスペースがデータの一部である場合のみです。Excelでは、先頭のスペースは削除されません。そのため、見出しやデータフィールドに不要なスペースが発生します。さらに悪いことに
"
が、フィールドの開始位置でないために無視されます。
ファイルに非ASCII文字(UTF-8でエンコードされている)がある場合、UTF-8のBOM(3バイト。
hex EF BB BF
) をファイルの先頭に置いてください。そうしないと、Excel はデータを utf-8 ではなく、あなたのロケールのデフォルトエンコーディング (例: cp1252) に従って解釈し、非 ASCII 文字はゴミになってしまいます。
以下のコメントはExcel 2003、2007、2013に適用されます。Excel 2000ではテストしていません。
Windowsのエクスプローラでファイル名をダブルクリックして開くと、すべて問題なく動作します。
Excel内から開くと、結果はさまざまです。
- ファイルにASCII文字しかない(BOMもない):動作します。
- ファイルに非ASCII文字(UTF-8でエンコードされている)があり、先頭にUTF-8のBOMがある場合:データがUTF-8でエンコードされていることは認識されますが、csv拡張子は無視されます。 テキストインポートウィザード その結果、残念ながら改行の問題が発生します。
オプションは以下の通りです。
- Excelからファイルを開かないようにユーザーを訓練する :-)
- XLSファイルを直接書くことを検討してください ... Python/Perl/PHP/.NET/etc でそれを行うためのパッケージ/ライブラリが利用可能です。
関連
-
[解決済み] Excelの問題 "excel 4.0の関数が定義された名前に格納されている".
-
[解決済み] .docx、.pptxなどの正しいMIMEタイプは何ですか?
-
[解決済み] VBAやマクロを使わずにExcelでループさせる方法とは?
-
[解決済み] Excelのセルで変数を宣言する
-
[解決済み] Application.CalculateとApplication.CalculateFullの違いは何ですか?
-
[解決済み] Microsoft Officeをインストールせずに、C#でExcel(.XLSおよび.XLSX)ファイルを作成するにはどうすればよいですか?
-
[解決済み] バッチファイル内で改行をエコーする方法を教えてください。
-
[解決済み] エクセルファイルの正しいcontent-typeは何ですか?重複
-
[解決済み] エクセル文書のMIMEタイプ設定
-
[解決済み] VBAでグローバル変数を宣言するにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Excel VBAアプリが "Code has been halted "というメッセージで自然停止する。
-
[解決済み] Excel VBA オートメーション エラー。呼び出されたオブジェクトは、そのクライアントから切断されました。
-
[解決済み] スプレッドシートに無限大はあるのか?
-
[解決済み] ExcelでDateTimeを表現する方法
-
[解決済み] Excelで列のすべてのセルに同じテキストを追加する
-
[解決済み] Excelの数式 LIKE、AND、IF、WILDCARDS
-
[解決済み] Excel の TEXT 式で 'yyyy' が年に変換されない
-
[解決済み】Excel:文字列の最後の文字/文字列の一致
-
[解決済み】PHPでUTF-8のCSVを出力して、Excelが正しく読めるようにするにはどうしたらいいですか?
-
[解決済み] MS Excelでバージョン管理をする最適な方法【非公開