根據你寄來的範本檔內容(下圖)


表頭為單一格,後續資料為2D陣列,寫入時分開處理比較好做

20131228-01  

 


這問題使用"指定路徑沒有檔案時自動新增Excel檔案及改變儲存格屬性"那篇文章的程式,修改其中第2和第4個SubVI即可

 


第二個SubVI在新增檔案那邊,Add的底下有個Template項目就是用來指定範本檔路徑的,原本沒有拉出來設定,修改成拉出來使用

20121228-02  

 

20131228-03  

 


第四個SubVI,實際寫入資料到儲存格,原本包含屬性資料共有3筆資料要寫入。現在不需寫入屬性,修改成只單獨寫入資料

20131228-04  

 

20131228-05  

 


表頭的資料保留由使用者輸入的項目,其餘包含換行符號都由程式處理。表頭所有字串合成單一字串後轉換成2D陣列,這樣做是為了不需修改寫入的SubVI

20131228-06  

 


實測資料直接輸出為2D陣列格式

20131228-07  

 


範例程式面板


注意範本檔案的副檔名為xlt或xltx(Excel 2007以上版本)

20131228-08  

 


範例程式程式碼

20131228-09  


因為範本檔的設定都在Sheet1這個工作表,所以程式直接設定為打開第1個工作表


再來應該有注意到第四個SubVI實際寫入資料到儲存格被調用2次


第1次調用是寫入表頭,因為合併儲存格是以最左邊為代表格,在這範例是A1,所以起始欄位和資料位置都設定為1


第2次調用是寫入實測資料,因為實測資料寫入是從第3列左邊開始,在這範例是A3,所以起始欄位位置設定為1,起始資料位置設定為3


重點:打開工作表之後,在沒有切斷對工作表的控制權之前,可以對同一工作表反覆寫入資料。依此可以把寫入儲存格屬性的程式都分別寫成SubVI,然後任意組合要寫入的資料

 


程式執行後可以看到新建立的檔案已套用了自訂範本

20131228-10  

, , ,

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