- ベストアンサー
エクセル形式のファイルの読み込み
C言語で、エクセル形式のファイルの読み込みの仕方を教えてほしいです。 CSV形式のファイルにするまでは分かっているのですが、そこからどのように読み込めば良いのか分かりません。 何か分かりやすく解説されている本、またはサイトがありましたら教えて下さい。 テキスト形式のファイルの読み込みはやった事があるのですが、同じようなやり方でできますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
大体以下の様なフローにします。 1)CSVファイルをテキストファイルの読み込みと同じようにOPENする 2)テキストファイルを1行読み込む 3)読み込んだ行を","で分離して、セルデータを取り出す。 4)1行の最後まで、3)を続ける 5)ファイルの終わりまで2~4)を続ける ==> 此処で、文字列の分離する方法として、c言語ならばstrtokが便利に使用できます。 <strtok例> #include <stdio.h> #include <string.h> int main(void) { char str[] = "ABCD,ef,1234,G"; char *tp; /* ,を区切りに文字列を抽出 */ tp = strtok( str, "," ); puts( tp ); while ( tp != NULL ) { tp = strtok( NULL," ." ); if ( tp != NULL ) puts( tp ); } return 0; } 【実行結果】 ABCD ef 1234 G (注意) エクセルデータをcsvに出力した場合、データ内に,が有ったりした場合、上記の例ではうまく行きません。エクセルデータにはどの様な文字が含まれているか、事前に調査する事が必要です。また、文字列など""で囲まれていたりしますので、分離したデータから""を取り除くなどの処理が必要かも知れません。 データに,がある場合、区切りを<tab>にしたテキスト出力をして、データを読み込む方式もあります。
その他の回答 (2)
- kokorone
- ベストアンサー率38% (417/1093)
Excel と他のアプリとのデータ連携のために、csvファイルが用意 されています。ですから、C言語からのアクセスもcsvファイル経由 が順当なところです。 C言語だけでは、困難なのですが、C言語から、JAVAアプリをCall すれば、Excelを直接読み書きできます。 Jakarta POIと呼ばれるコンポーネントを利用したJAVAアプリを作成 することになりますが。。
- hana-hana3
- ベストアンサー率31% (4940/15541)
エクセル形式のファイル = *.xls です。 情報は少ないですが、気合いを入れてプログラムを組めば読み込む事は可能かもしれません。 CSV形式のファイル = *.csv ですが、内容はテキストファイルです。 (エディタやメモ帳で開いてみるとよく解るでしょう) データは「,」で区切られているので、テキスト処理さえ出来れば簡単にデータを取り出すことが出来ます。