NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

labview Excelデータ読み取り

Excelで作成したデータをLabVIEWのBlockDiagramで入力したいのですが方法が分かりません.

Excelのデータは、2列あり、一列目が時間を表していて、二列目が時間に対応するデータとなっています.

一列目:t=[0 0.1 0.2....10]

二列目:X(t)=[3 4 5 ...20 ] のようなExcelデータです.

そのデータをLabVIEW上で表現して、グラフとして観測できるようにしたいです.

ご多忙の中、申し訳ないのですが、回答のほどよろしくお願いします.

 

メッセージ1/6
8,518件の閲覧回数

グーグル検索で下記が見つかりました。参考になりますか。

エクセルシートのセルの情報をLabVIEWで抽出するサンプル

Certified LabVIEW Developer
There are only two ways to tell somebody thanks: Kudos and Marked Solutions

GCentral
メッセージ2/6
8,493件の閲覧回数

単に数値の入った2つの列のデータで、その数値が読み取れれば良いのであれば、xlsのその部分をcsvとして保存し、それをLabVIEWでスプレッドシートファイル読込関数など(デリミタはコンマ)で読み込む方が格段に推奨です。そのまま2次元配列になります。

ActiveXなどを駆使した方法は、自分もllb化しましたが、内部動作は「裏でExcelが起動され、開かれたワークシートの所定のセルから値を取ってくる」ということになっています。ワークシートの文字の色とかセルサイズとかが必要な場合とか、複雑な構造でxls,xlsxで・・、といった場合を除いては、通常はcsvから読む方が速く簡便です。

メッセージ3/6
8,461件の閲覧回数

スプレッドシートからのcsvファイル読み込みの方法を詳しく教えていただいてもよろしいでしょうか??

メッセージ4/6
8,322件の閲覧回数

添付の絵のような感じです。

csv全体が数値だけで、単精度(桁数6桁程度)で読めればいい場合は、関数一発です。スプレッドシートファイル読み込みでデリミタ(区切り文字)をコンマにしてやるだけです。

倍精度などで読みたい場合は一旦ファイルを読んで文字列のかたまり(二次元配列)に分けてから倍精度に変換します。

タイトル行など余計な行・部分がある場合は、文字列の二次元配列から必要なところだけ取り出して倍精度に変換します。

当方のLabVIEWはバージョンが古いためアイコンの見た目はちょっと違うかも知れませんが。

 

190128-sample1.png

 

 

メッセージ5/6
8,297件の閲覧回数

自分もM.Shiraishi様のおっしゃるCSV形式で読み取る方法がベストだと思いますが、xlsxファイル形式でデータが単純であることやExcelがインストールされている環境で一瞬起動しても問題ないということでしたら、レポート生成関数を応用することもできます。

 

Excel to LabVIEW Graph.png

 

Excelファイルのデータ構造によっては、この方法が使えなかったり、データを取り出すまでにもう少し複雑になりますのでご検討いただけると幸いです。

メッセージ6/6
8,253件の閲覧回数