• ベストアンサー

Excel ファイルをCSV ファイルに変換できな

お世話になります。 データベースにデータを入力するためにコマンドプロンプトからCSVファイルを load data infile コマンドを使ってやりたいと考えています。 Excelで作成した、日本語の入ったファイルをCSVファイルに変換しようとしていますが、添付のスクリーンショットのエラーメッセージが出てきて、うまくいきません。私はカナダ在住者で、英語版のWindows 10を使っているためメッセージは英語になっていますが、指定したファイルにはCSV形式とは互換性のない特性が含まれているとのこと。このファイルフォーマットを保持しますか?という質問の後に、3つの選択肢が表示されています。 2:このフォーマットを保持してCSV形式とは互換性のない特性を除外するならYESボタンを 2:CSV形式とは互換性のない特性を保持したいならNoボタンを押して、最新のExcelでセーブする 3:どんな特性が失われるのかを見るにはHELPボタンを HELPボタンを押してみたら私の使っているExcel2007は引退したとのことで、UPDATEを促してきました。 新しいExcelにバージョンアップするしか方法はないのでしょうか? 私のやった操作と、最後に出てきたエラーメッセージのスクリーンショットを添付します。 どなたかお知恵をお貸しください。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • RESOLD
  • ベストアンサー率36% (72/197)
回答No.1

スクリーンショットのメッセージはエラーメッセージではありません。 xlsまたはxlsxからCSVに変わる際の定型の警告メッセージです。 つまり変換する際は必ずこの警告が出ます。 エクセルとCSVの違いは例えばセルの色、文字の太さ、画像が入っていたり、マクロが組まれていたりエクセルなら普通にあるものが、CSVだとただのテキストのみになります ちょっと違いますが色付きのカラフルだったものが、ただの平坦なテキスト文書になるとでも思ってください。 だからそのような情報が失われていいですか?と聞いています。 また、場合によっては変換時に列がずれることがあります。 どのように変わってしまうか心配であれば、既存のファイルをいきなりother formartそのまま書き換えるのではなく「save as」で別ファイルとしてcsvで保存してみて、意図通りに変わっているか確認してみてください 保存時にSave as typeの箇所をxlsから「CSV」に変えることで、csvファイルとして別ファイルで保存できます。

papashiroSooke
質問者

お礼

早速にご回答いただき、有難うございます。 日本語のテキスト情報だけをCSVに変換できればいいので、失われる情報があっても構わないOKボタンを押してみました。(MSDOS版のCSV) しかし算用数字とアルファベット以外はすべて?に変換されていました。これはどういう事でしょうか? 私が行った手順の中には文字コードを選択するようなものはありませんでした。お時間がありましたら、引き続きアドバイスをいただけると有り難いです。

papashiroSooke
質問者

補足

EXCELのCSVへの変換がなぜかうまく行かないので、PHPspreadsheet を使って、EXCEL からデータベースに直接書き込むプログラムを作って解決できました。 ご協力ありがとうございました。

その他の回答 (2)

  • pluto1991
  • ベストアンサー率30% (2018/6681)
回答No.3

CSVというのは文字列です。 テキストエディタ(メモ帳とか)で開けば文字が並んでいる姿を見ることができます。 データがカンマで区切られているだけ。それをエクセルとかのスプレッドシートで開けばセルに一つ一つ収まってくれるわけです。 ということで、通常のエクセルでセルに色を付けたりフォントサイズを変えたり、文字を太字にしたり、グラフを付けたり、計算式を使ったり、という「装飾」を施しますが、そのような情報はすべて失われます。 という警告文ですね。 データベースに取り込むのは文字情報ですので装飾がなくなることをちゃんと承知していればCSVで保存でOKです。

papashiroSooke
質問者

お礼

早速にご回答をいただき、有難うございました。 文字情報以外の装飾部分が必要なければ、警告文が出たところでOKを押せばいいという事で、OKボタンを押して、一応CSVファイルというのができたのですが、中身は英数字以外は?マークでいっぱいでした。 何かいいアドバイスがありましたら、教えてください。 お願いいたします。

papashiroSooke
質問者

補足

EXCELのCSVへの変換がなぜかうまく行かないので、PHPspreadsheet を使って、EXCEL からデータベースに直接書き込むプログラムを作って解決できました。 ご協力ありがとうございました。

  • asciiz
  • ベストアンサー率70% (6812/9686)
回答No.2

古いExcelは、日本語の文字コードとして「シフトJIS」を想定していると思います。 しかし最近のExcelや他のオフィスソフトでは、「UTF-8」文字コードを採用している場合が多いです。 日本語以外のマルチバイト文字や絵文字を同時に扱えるため、都合が良いのですが、古いExcelにとってはテキストデータであるはずのCSVファイルにバイナリデータが混じっているようなデータに見えてしまいます。 そこで、CSV保存時に「シフトJIS」を指定するようなオプションは無いでしょうか。 例えば Microsoft 365 Excel であると、ファイル形式として「CSV UTF-8(コンマ区切り) (*.csv)」という選択と、「CSV (コンマ区切り) (*.csv)」という選択肢が別に用意されていて、後者を選択すると、シフトJIS文字コードで保存されます。 ※ただし、シフトJISで表現できない文字は「?」などに化けてしまうかもしれません。 まあ日本語だけでしたらほぼ問題ないと思いますので、CSVファイルを保存しなおしてみてください。 また、テキストエディタなどで読み込もうとしたCSVファイルを読み込むと、どのような文字コードであるか表示されるかもしれません。

papashiroSooke
質問者

お礼

早速にご回答をいただき、有難うございます。 CSV保存時に「シフトJIS」を指定するようなオプションは、私のやった手順ではありませんでした。使っているMicrosoft Officeは2007です。 Office 365でそのようなコードを選択する部分があるのなら、会社ではOffice 365を使っていますので、会社でやってみてもいいと思います。 結果をお知らせいたします。

papashiroSooke
質問者

補足

EXCELのCSVへの変換がなぜかうまく行かないので、PHPspreadsheet を使って、EXCEL からデータベースに直接書き込むプログラムを作って解決できました。 ご協力ありがとうございました。

関連するQ&A