- ベストアンサー
Excel内のデータに直接書き込むってやったことある人いますか?しかもバイナリで!!
とあるツール(回路シミュレータSPICE)の出力データから1クリックでエクセルファイルに変換するツールを考えています。今のところデータ整理作業としては、 SPICE出力データ(倍精度バイナリデータ)=>Bin to 10進ASCII変換=>必要なデータを抽出=>エクセルファイルにコピペ=>保存(倍精度バイナリデータ) という感じで面倒かつ単調な作業が日々の暮らしになっています。でExcelの中身をバイナリエディタで眺めてみたところデータ管理はどうやらSPICE出力データと同じ倍精度バイナリデータで管理されているようでした。そこで、 SPICE出力データ(倍精度バイナリデータ)=>必要なデータを抽出=>エクセルファイルにコピペ(倍精度バイナリデータ)=>保存 てなことをやれないかと思ったわけです。しかしExcelファイル中身のフォーマットがどうなっているのか(セルの位置とかの管理)よくわからないのですが、何かいい方法とか資料とかはないでしょうか?分かる方いましたらよろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 資料としては、以下のようなものがあります。 http://sc.openoffice.org/servlets/NewsItemView?newsItemID=2 Excel file format description started Java系 Hacking HSSF プロジェクト http://poi.terra-intl.com/hssf/hacking-hssf.html 書籍 Microsoft Excel 97 Developer's Kit http://www.amazon.com/Microsoft-Excel-97-Developers-Kit/dp/1572314982 BIFF8 のみ
その他の回答 (3)
- KenKen_SP
- ベストアンサー率62% (785/1258)
> Excelファイル中身のフォーマットがどうなっているのか ご質問の「やりたいこと」とは無関係ではないかと・・・^^; 単純に OPEN ステートメントのバイナリモードでファイルを開くなど して、バイト配列にデータを読み込み、必要なデータを抽出してから 結果をセルに書き込んでいくだけです。 VBA で対応できると思いますよ。 とりあえず、16 進ダンプをセルに展開するプログラムを書いてみては?
お礼
このやり方だとちょっとデータ量が多くてパソコンがかわいそうなので…。 回答ありがとうございました。
- imogasi
- ベストアンサー率27% (4737/17069)
おせっかいなことを言います。私は数年ほぼ毎日このエクセルのカテを見てます。 理系の質問には回答のつきが悪い。コンピュタのプログラマはお金や人や物の在庫のシステムを扱う人口が多いからだと思います。ですから、偶然、理工系で実験などしている学院生などが目に留めてくれればよいが、日中1日に50-100件の勉強にもならないエクセルの質問を読んでおれないはずです。 ーー ですから、回答候補者に理系の装置やソフトなどの言葉で拒否反応を抱かせないように、省いて判りやすく質問することです。 まず(1)原データ(SPICEの出力データをストレートに保存したら どういう風なファイルになる?) (2)それを変換したデータ(できるだけ文字列の。それは可能か?)エクセルのセルに区切って、入れるとすると、どういう単位になるか? (3)エクセルへ移行 (4)エクセルでどういう表示形式(表示内容)データ(0、1の2進数、16進、10進、またはその他?)を見て考えたいのか を1つずつ、書くことです。その他はあっさりと記述のこと。 どういう風に(1)を作ったとかはたぶん関係ないのです。 ただし(1)について特別に知りたいことは、CSVファイルに落とせるかどうかです。それができると、非常に易しくなるからです。その中身の例を数レコード分挙げてください。 CSVファイルに落とせれば(2)(3)は簡単で、みんな知ってます。 (4)はデータ保存だけのことでなく、どういう風に画面のエクセルのセル内で見えるかが大事なんでしょう。
お礼
回答ありがとうございました。
- k-pix
- ベストアンサー率51% (50/98)
標題の件の経験はありませんが、下記サイト(少々、情報が古いです。)が参考になるかもしれません。 http://homepage3.nifty.com/hippo2000/perltips/Spreadsheet/WriteExcel.htm#THE_EXCEL_BINARY_FORMAT 現在では、「2007 Office System: Microsoft SDK for Open XML Formats」を利用するのかもしれません(詳しくは知りませんので悪しからず。)。 http://msdn2.microsoft.com/ja-jp/library/bb448854.aspx 質問を拝見しまして、 ・Excel VBAでSPICE出力データの読み込み という代替案ではダメなのかな?と思いました。 「SPICE出力データ読み込みおよびシート内へのデータの配置」マクロをAddIn化しておけば、操作性も上がるのはないかと思います。 ご参考まで。
お礼
そうですねえ。まあデータ量が多いのでバイナリのままコピペでいけるならその方が速いかと思ったんですが…。 回答ありがとうございました。
お礼
あっ!!これこれこれですよ!!欲しかったのは。 ほんとにありがとうございました。