- ベストアンサー
Excel内のデータに直接書き込むってやったことある人いますか?しかもバイナリで!!
とあるツール(回路シミュレータSPICE)の出力データから1クリックでエクセルファイルに変換するツールを考えています。今のところデータ整理作業としては、 SPICE出力データ(倍精度バイナリデータ)=>Bin to 10進ASCII変換=>必要なデータを抽出=>エクセルファイルにコピペ=>保存(倍精度バイナリデータ) という感じで面倒かつ単調な作業が日々の暮らしになっています。でExcelの中身をバイナリエディタで眺めてみたところデータ管理はどうやらSPICE出力データと同じ倍精度バイナリデータで管理されているようでした。そこで、 SPICE出力データ(倍精度バイナリデータ)=>必要なデータを抽出=>エクセルファイルにコピペ(倍精度バイナリデータ)=>保存 てなことをやれないかと思ったわけです。しかしExcelファイル中身のフォーマットがどうなっているのか(セルの位置とかの管理)よくわからないのですが、何かいい方法とか資料とかはないでしょうか?分かる方いましたらよろしくお願いします。
- オフィス系ソフト
- 回答数4
- ありがとう数6
- みんなの回答 (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/17068)
おせっかいなことを言います。私は数年ほぼ毎日このエクセルのカテを見てます。 理系の質問には回答のつきが悪い。コンピュタのプログラマはお金や人や物の在庫のシステムを扱う人口が多いからだと思います。ですから、偶然、理工系で実験などしている学院生などが目に留めてくれればよいが、日中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化しておけば、操作性も上がるのはないかと思います。 ご参考まで。
お礼
そうですねえ。まあデータ量が多いのでバイナリのままコピペでいけるならその方が速いかと思ったんですが…。 回答ありがとうございました。
関連するQ&A
- テキストファイルのデータからバイナリを作りたい
現在、テキストデータとしてCSVファイル1つあたり8バイトのデータが1000個ほどのデータが書かれているファイルがあります。このデータをバイナリファイルへ数値も変換して行きたいと思っています。 たとえば1個目のデータ”12345678”というテキストデータをバイナリの"12345678"に変換したらそれを0x00番地に並べて、そして2個目のデータ”87654321”というデータをバイナリにしたらそれを0x90離れた場所に置いていき、それを1000回繰り返して、結果をバイナリファイルで出力したいのですが、何か簡単にできるフリーソフトなどありませんでしょうか? また、プログラムとかでも簡単にできるのならそうしたいのですが、どうしたらよいか教えていただけないでしょうか?
- ベストアンサー
- C・C++・C#
- EXCEL VBAで、バイナリデータの書き込み及び読み込みについて
御世話になります。仕事でいきずまってしまったので助けて下さい。 今Excelvbaで、あるExcelファイルのデータを読み込んで、バイナリファイルとして出力するソフトを作ってるのですが、内部的にデータを構造体に一度格納して、一気にバイナリファイルに書き込む、もしくはその逆(バイナリファイルを読み込んで、一気に構造体に入れる)にはどうすればよいのでしょうか?apiのfailopenやvcを使えば出来るらしいのですがよくわかりません。vbaでは不可能なのでしょうか?どなたかご教授下さい。
- ベストアンサー
- Visual Basic
- バイナリファイルなのですが・・・。
研究用のデータを受け取ったのですが、テキストではなくバイナリファイルでもらいました。データを取得した人によると、↓にある装置を使って時系列データをintel86系バイナリフォーマットで記録したと言っていました。 http://www.sonysms.co.jp/j/products/datarecorder/pdf/SONY_PCscan3_jp.pdf どうにかしてこのバイナリファイルをテキストに変換して、データを取得したいのですが、どうしたらよいのでしょうか? ネットにあるバイナリ→テキスト変換ツールを使いましたが、16進数の数字が羅列されるだけで、エクセルなどで読めるデータ形式にはなりませんでした。
- 締切済み
- その他(プログラミング・開発)
- C#でバイナリデータをテキストフォームへ表示させるには?
C#でバイナリデータをテキストフォームへ表示させるには? C#でバイナリファイルをテキストへ変換するツールを作成しています。 バイナリデータを配列へ格納し、その配列をテキスト変換してテキストフォームへ出力させるという処理を作成したいのですが、どうすれば良いのかどうしてもわかりません。 どのようなコードをどのようにして書けばよいのか、ご教示いただけないでしょうか。 よろしくお願いします。 (ちなみにC#を始めて1週間ほどです)
- ベストアンサー
- C・C++・C#
- この方法でバイナリデータが読めるのでしょうか
あるプログラムでバイナリ出力しているファイルがあります。これを単純にfread()で読み込んで、今度はfprintf()で出力すればどうなりますか?やりたいことは、バイナリ出力されたファイルをテキストファイルに変換したいのですが、この方法で、バイナリファイルが読めるでしょうか? ちなみに、読みたいバイナリファイルは、fwrite()で書き出したファイルです。 あと、「バイナリファイルです」と言って貰ったファイルを、windowsのテキストエディタなどで開くと、appleなどの通常のアルファベットの単語と、あとは訳のわからないものが見えるのですが、これってバイナリファイルじゃないですよね?appleなどと書いてあるのですから。 間違えていましたら、訂正お願いします。
- ベストアンサー
- C・C++・C#
- バイナリファイルの編集
stirling,bzなどのエディタを用いて、バイナリファイルを編集しようとしています。 テキスト(a.txt)のデータをバイナリファイルにコピペしようとしたのですが・・・ テキストで「ff ff ff ff」と書いてあったデータが、バイナリファイルにコピペすると「4646~」というように変換されてしまいました。 バイナリファイルでも「ff ff ff ff」とコピーしたい場合はどのようにすれば良いのでしょうか?
- 締切済み
- フリーウェア・フリーソフト
- バイナリーデータをCSV変換して元に戻す方法?
あるバイナリーデータ(.WAVファイル)があります。 このファイルをCSV変換することはできました。 その後、CSVデータ上で値を変換し、もとのWAVファイルに直したいのですが、そういった作業は簡単にできるのでしょうか? この作業の場合、fwrite関数を用いて、バイナリーデータとしてwavファイルに書き込んでいくだけで良いのでしょうか? わかるかたがいましたら教えていただけないでしょうか? よろしくお願いします。
- ベストアンサー
- C・C++・C#
- VBAを使って、一部バイナリデータを読み書き
VBAを使って、一部バイナリデータを読み書きする方法 を教えてください。 あるファイルが1行目から30行目までが普通のASCII形式でデータが書き込まれており、 31行目以降はバイナリデータとなっています。 また、30行目にheader endと書かれています。 このデータを30行目までは文字列データとして抽出し、 31行目以降はバイナリデータとして抽出して、 少し内容を書き換えてから、最初と同様に 30行目までをASCII、31行目以降をバイナリデータとして出力したいのですが どのようにすれば良いですか? http://homepage2.nifty.com/kasayan/vba/binary.htm http://hanatyan.sakura.ne.jp/vbhlp/Binary.htm バイナリデータの読み込み方は上記のページに書かれてあるのですが いずれも、ファイルをまるごとバイナリ形式として読み込むもので 一部だけバイナリとして読み込むことはできないようです。 どなたかどうすれば良いか教えてください。
- ベストアンサー
- Visual Basic
- バイナリファイルからの文字列抽出
バイナリファイルをCSVに変換するツールがございます。 CSV変換した後の文字列は、"日付" "数字"となっています。 今回、問題となっておりますのは、 バイナリファイルのサイズが大きく CSV変換に時間がかかってしまいます。 少しでもバイナリファイルのサイズを小さくするべく、 バイナリファイルから特定の"日付"を 抽出しようと考えておりますが、 可能でしょうか? また、その手法をご教授ください。 OSはWINDOWSです。 よろしくお願いします。
- ベストアンサー
- その他([技術者向] コンピューター)
- javaバイナリ変換したデータのファイル出力
現在、 String test_st = "0123456789abcdef"; というデータを byte[] bytes = test_st.getBytes("UTF-8"); このコードでバイナリ変換したのですが、このbytesに格納したバイナリデータたバイナリファイルとして出力したいのですが、どのようにしたらよいかご教授よろしくお願い致します。 BinaryFileWriter writer = new BinaryFileWriter(); このようなコードで出力できるとのサンプルもあったのですが、うまくいきません。 どうぞ、よろしくお願い致します。
- ベストアンサー
- Java
お礼
あっ!!これこれこれですよ!!欲しかったのは。 ほんとにありがとうございました。