好文档 - 专业文书写作范文服务资料分享网站

在LabVIEW中使用ActiveX

天下 分享 时间: 加入收藏 我要投稿 点赞

在LabVIEW中使用ActiveX讀取Excel檔案

在LabVIEW中要讀取Excel檔案有許多方法,NI公司有出一款Report Generation Toolkit的外掛模組以方便LabVIEW用戶使用。但這Toolkit我沒有,再者這Toolkit要另外付費。考量之下還是用ActiveX嘗試做看看。

實際試寫程式時問題不少,相關設定找到的參考資料不多,錯誤多次後終於完成可用的程式。

程式的部份分成幾個區塊:

1.第1步建立和Excel程式連接的基礎,這裡使用Automation Refnum這個元件來做,把Automation Refnum元件設定為Excel._Application,方法是在Automation Refnum元件上按右鍵,從跳出的選單中選取。

2.第2步用Property Node設定是否要開啟Excel程式來打開檔案,由於我不希望每次執行這程式都會自動打開Excel程式,所以在Visible這裡設定為不開啟Excel程式。這一步有沒有開啟Excel程式影響到結尾要如何處理,後面的步驟再詳細說明。

3.第3步同樣用Property Node設定取得Excel程式Workbook(活頁簿)的控制權。

4.第4步用Invoke Node設定要打開的檔案,這裡使用Path元件來指定檔案路徑和檔名,基本上只要Excel程式可以打開的檔案都可以指定。

5.第5步同樣用Property Node設定取得Excel程式Sheet(工作表)的控制權。

6.第6步用Invoke Node設定要讀取的工作表。在這裡設定的不是工作表的名稱,而是工作表的順序編號,因此號碼的數值是從1開始。若檔案中只有1頁工作表就直接設定為1。

7.第7步,為了後續處理要將到目前為止的資料轉換成Excel._Worksheet,方法一樣是在Automation Refnum元件上按右鍵,從跳出的選單中選取,再使用Variant To Data元件轉換資料。Variant To Data元件很有意思,在上面Type接腳連上什麼格式的資料轉出來的就是那種格式資料。

8.第8步,到上一步為止已完整取得工作表的所有資料,再來就是指定讀取範圍。要注意的是若只有指定Cell1則只讀出單格的資料,若Cell1和2都有指定則讀出2D陣列資料(即使Cell1和2指定的是同一縱列還是會讀成2D陣列資料)。

9.讀出的資料還必須再次轉換成LabVIEW能接受處理的格式,這裡同樣使用Variant To Data元件轉換資料。注意轉換的格式必須和上一步讀出的範圍相同。

10.切斷Excel程式的控制權,至此完成整個讀取Excel檔案。若在第二步有設定要開啟Excel程式來打開檔案的話,確實是到此結束。

但我在第二步時是設定不開啟,於是造成再次執行程式時出現訊息,因為Excel檔案仍在背景執行打開中,要解決這些問題只好再追加程式。

11.追加的部份重點是重新取得Excel程式控制權,並在背景執行狀態下關閉Excel程式,最後才切斷Excel程式的控制權。

在LabVIEW中使用ActiveX

在LabVIEW中使用ActiveX讀取Excel檔案在LabVIEW中要讀取Excel檔案有許多方法,NI公司有出一款ReportGenerationToolkit的外掛模組以方便LabVIEW用戶使用。但這Toolkit我沒有,再者這Toolkit要另外付費。考量之下還是用ActiveX嘗試做看看。實際試寫程式時問題不少,相關設定找到的參考資料不多,錯
推荐度:
点击下载文档文档为doc格式
1svkj5fvge5nrap1sklw
领取福利

微信扫码领取福利

微信扫码分享