close

今天記錄一下過去二天研究用C#寫入資料到Excel的方式,
先將開發的專案加入[Microsoft.Office.Interop.Excel]的命名空間(namespace)
從方案總管(Solution Explorer)選擇加入參考(Add References)

在清單中找到Microsoft.Office.Interop.Excel並選擇確定

確定加入後即可在程式碼中加入Microsoft.Office.Interop.Excel

操作Excel必須按照順序宣告:
(1) Application:設定Excel應用程序
(2) Workbook:設定Excel檔案
(3) Worksheet:設定工作表
(4) Cell:設定儲存格
這樣就可以寫入資料了...

範例一:用程式碼產生一個全新的Excel檔並寫入資料...

開啟建立的Excel檔,結果如下:

範例二:依序範例一,用程式碼開啟存在的Excel檔並寫入新的資料...

原本範例一宣告Workbook是用Workbooks.Add();
現在範例二宣告Workbook則用Workbooks.Open(FileStr);
其中FileStr就是指定欲開啟的檔案路徑及名稱,
所以範例一建立全新Excel存檔是用SaveAs(FileStr);
而範例二已經指定開啟的檔案所以是用Save();來存檔

由於範例一是製作一個全新的Excel檔,
所以宣告Worksheet時,必須從索引數字1開始然後再設定工作表名稱,
不過範例二是開啟一個存在的Excel檔,
所以宣告Worksheet時,可以指定索引數字或是工作表名稱來使用,
上述範例二宣告Worksheet(工作表)的程式碼,也可以改寫成:

執行後重新開啟Excel檔,結果如下:

如果要修改工作表的名稱,則在宣告Worksheet後指定新的名稱就可以了:

執行後重新開啟Excel檔,結果如下:

同樣的原理也可以重新對Cell(儲存格)寫入新的資料:

執行後重新開啟Excel檔,結果如下:

如上述,其實開啟舊檔要寫入新資料時很容易會去改到原本的資料,要小心!
如果範例二是開啟一個多份工作表的Excel檔,建議是先指定欲操作的工作表...

依據範例二的內容先來新增工作表,就是再宣告新的Worksheet物件...

如上述宣告了二個Worksheet分別是Excel_WS2及Excel_WS3,
Excel_WS2指定新增在Excel_WS1之後,設定名稱="015"
Excel_WS3指定新增在Excel_WS1之前,設定名稱="013"
此時一個Workbook已經存在三個Worksheet(工作表)了!

接下來設定儲存格(Cell)的資料由於未先指定要操作的工作表,
所以此例會被寫在程式碼中依序宣告的最後一個工作表...

為了避免非預期的狀況發生,建議還是在設定儲存格資料前先指定工作表,
如下圖,程式碼顧名思義叫做Activate(啟用)...

先指定欲操作的Workbook及Worksheet後,
Cell資料就會在我們想要的位置了...

到目前為止已經會將資料寫入Excel檔案,以及工作表(Worksheet)的操作方式,
至於工作表或是儲存格的樣式,例如我想要把儲存格的字體設為藍色...

Excel_APP1.Cells.Font.Color = System.Drawing.Color.Blue;

但是如果我只想把某些儲存格的字體或是背景變色,
就要另外宣告Range物件來設定了,有機會再慢慢研究吧!

 

arrow
arrow
    文章標籤
    ASP C# Excel
    全站熱搜

    王振權 發表在 痞客邦 留言(0) 人氣()