- PR -

VB.netを利用したXlsファイルからCsvへの変換について。

1
投稿者投稿内容
ミネ
会議室デビュー日: 2004/12/16
投稿数: 3
投稿日時: 2004-12-16 23:06
こちらの掲示板を利用するのは初めてです。よろしくお願いします。

質問の内容はキャプションのとおりです。
フォーム上にXlsファイルを放り込んで、フルパスとワークブックのシート数を取得し、
シート数分、workSheet(i)を、SaveAs([フルパス], [フォーマット])で書き出す、
という事を行なおうとしています。

最初はこちらの、
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_t16.htm
でやってみたのですが、なにぶんセル数が10万件を越えるので時間が懸かってしまいます。

現在はここらへんの、
http://www.visualbasicforum.com/t120457.html
を参考にやっています。
現在困っているのは、saveAs([フルパス])で、xlsファイルを出力はできるのですが、
saveAs([フルパス], [フォーマット])でやるとエラーが出さずに停止してしまう事です。

フォーマットの指定方法さえわかれば万事解決なのですが……よろしくお願いします。
とっと
大ベテラン
会議室デビュー日: 2004/03/25
投稿数: 197
投稿日時: 2004-12-17 08:11
おはようございます。

引用:

ミネさんの書き込み (2004-12-16 23:06) より:

フォーム上にXlsファイルを放り込んで、フルパスとワークブックのシート数を取得し、
シート数分、workSheet(i)を、SaveAs([フルパス], [フォーマット])で書き出す、
という事を行なおうとしています。

フォーマットの指定方法さえわかれば万事解決なのですが……よろしくお願いします。



やりたい事が今ひとつ見えてきません。
>質問の内容はキャプションのとおりです。
なんですか?

あと、開発環境を書いて下さい。Winアプリなのか、Webアプリなのか。
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2004-12-17 10:57
引用:

最初はこちらの、
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/vb_t16.htm
でやってみたのですが、なにぶんセル数が10万件を越えるので時間が懸かってしまいます。


セルを一個ずつ読むと遅いです。
まとめて二次元配列で受けるとはやくなります。
http://support.microsoft.com/default.aspx?scid=kb;ja;JP414107

あるいは、ADO.NETを使うと手もあります。
http://support.microsoft.com/default.aspx?scid=kb;ja;311731
ミネ
会議室デビュー日: 2004/12/16
投稿数: 3
投稿日時: 2004-12-17 12:38
>とっとさん
フォーム上にXlsファイルを入れると、同フォルダ上にシート毎に分かれたCsvファイルが
出てくるWinアプリを作ろうとしています。ユーザはあまりPCに縁の無い人です。

workbook.worksheet(i).saveas([パス名], [フォーマット])で、フォーマットを指定して
保存できるはずなんですが、フォーマットの指定が違うようでうまく動作しないのです。
フォーマットはoptionalなので、無しで保存すると問題なくXls形式で保存されます。

>todoさん
既出の問題だったんですね・・・・・・検索不足でした。お恥ずかしい限りです。。。
さっそくこれを利用して作ってみようと思います。
にしざき
ぬし
会議室デビュー日: 2003/06/30
投稿数: 304
投稿日時: 2004-12-17 16:37
CSV 形式で保存する(ファイル-形式を指定して保存)ときって、情報が失われるからなんやかやのダイアログが出ますよね。それでうまくいかないんじゃないかという気がするのですが。
であれば、事前に Application.DisplayAlerts = false しておけばいいのかもしれません。
ミネ
会議室デビュー日: 2004/12/16
投稿数: 3
投稿日時: 2004-12-20 22:35
みなさまうまくいきました! 二次元配列で読み込むと面白いくらいに早いんですねえ。
やはり探し方が下手なのか……以降、よりいっそうの精進をします。。

>にしざきさん
それでも上手く行かなかったのです。無念……
とにもかくにも上手く行ったので良かったです。ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)