之前的文章提到用ActiveX來存取Excel檔案的方法,雖然可以準確的存取指定範圍的資料,但執行效率不佳,資料很多時要等很久,完全不具實用性。因此苦思能否再縮短執行時間以提高效率,經過測試找到簡便的方法

 

 

1.讀取Excel檔案:


這裡使用的是Read From Spreadsheet File.vi這個元件,使用可相容Excel的副檔名檔案(xls、csv、txt),讀出來的2D陣列資料是縱排的,因此資料再經過縱橫位置轉換以便後續LabVIEW程式處理。上面那個%.6f的字串參數是設定數值要讀出到小數點以下幾位,%.6f為讀到小數點以下6位

 20080407-01  

 

 

2.寫入Excel檔案:


這裡使用的是Write To Spreadsheet File.vi這個元件,使用可相容Excel的副檔名檔案(xls、csv、txt),由於要寫入的2D陣列資料必須是縱排的,因此資料再經過縱橫位置轉換。上面那個%.6f的字串參數是設定數值要寫入到小數點以下幾位,%.6f為寫入到小數點以下6位

20080407-02  

 

 

這種存取的方法最大的優點就是快,經測試存取約百萬個數值資料約1秒左右


缺點是用Excel開啟這種存檔方式的檔案時會跳出視窗轉換格式,另外存取時無法指定存入的工作表及範圍,每次的存取都是Excel檔案的第一個工作表


以執行效率而言那些缺點可以忽略用其他方法補救(如自動換檔名存檔或讀檔),因此我以後需要大量存取資料的程式已改用這種存取方法

,

未出師的小工程師 發表在 痞客邦 PIXNET 留言(0) 人氣()