出處
C# 輸出 Excel
以下是使用 C# 輸出 Excel 檔的範例。
環境:Microsoft Visual Studio 2012 Express、 .Net Framework 4.5
將 Excel 物件程式庫加入參考:
將 System.Drawing 組件加入參考:
如果要設定欄位背景、文字顏色,可將 System.Drawing 組件加入參考
在「參考管理員」畫面,選左邊的「組件」,再搜尋 drawing,勾選「System.Drawing」,按「確定」加入參考。
設定引用的 using:
範例:
輸出結果:
環境:Microsoft Visual Studio 2012 Express、 .Net Framework 4.5
將 Excel 物件程式庫加入參考:
- 在「方案」底下的「參考」按右鍵,選擇「加入參考」
- 在「參考管理員」畫面,選左邊的「COM」,再搜尋 excel,勾選「Microsoft Excel 版本 Object Library」,版本會依安裝的 Excel 而不同,按「確定」加入參考。
將 System.Drawing 組件加入參考:
如果要設定欄位背景、文字顏色,可將 System.Drawing 組件加入參考
在「參考管理員」畫面,選左邊的「組件」,再搜尋 drawing,勾選「System.Drawing」,按「確定」加入參考。
設定引用的 using:
1
2
| using Excel = Microsoft.Office.Interop.Excel; using System.Drawing; |
範例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
| static void Main( string [] args) { // 設定儲存檔名,不用設定副檔名,系統自動判斷 excel 版本,產生 .xls 或 .xlsx 副檔名 string pathFile = @"D:\test" ; Excel.Application excelApp; Excel._Workbook wBook; Excel._Worksheet wSheet; Excel.Range wRange; // 開啟一個新的應用程式 excelApp = new Excel.Application(); // 讓Excel文件可見 excelApp.Visible = true ; // 停用警告訊息 excelApp.DisplayAlerts = false ; // 加入新的活頁簿 excelApp.Workbooks.Add(Type.Missing); // 引用第一個活頁簿 wBook = excelApp.Workbooks[1]; // 設定活頁簿焦點 wBook.Activate(); try { // 引用第一個工作表 wSheet = (Excel._Worksheet)wBook.Worksheets[1]; // 命名工作表的名稱 wSheet.Name = "工作表測試" ; // 設定工作表焦點 wSheet.Activate(); excelApp.Cells[1, 1] = "Excel測試" ; // 設定第1列資料 excelApp.Cells[1, 1] = "名稱" ; excelApp.Cells[1, 2] = "數量" ; // 設定第1列顏色 wRange = wSheet.Range[wSheet.Cells[1, 1], wSheet.Cells[1, 2]]; wRange.Select(); wRange.Font.Color = ColorTranslator.ToOle(Color.White); wRange.Interior.Color = ColorTranslator.ToOle(Color.DimGray); // 設定第2列資料 excelApp.Cells[2, 1] = "AA" ; excelApp.Cells[2, 2] = "10" ; // 設定第3列資料 excelApp.Cells[3, 1] = "BB" ; excelApp.Cells[3, 2] = "20" ; // 設定第4列資料 excelApp.Cells[4, 1] = "CC" ; excelApp.Cells[4, 2] = "30" ; // 設定第5列資料 excelApp.Cells[5, 1] = "總計" ; // 設定總和公式 =SUM(B2:B4) excelApp.Cells[5, 2].Formula = string .Format( "=SUM(B{0}:B{1})" , 2, 4); // 設定第5列顏色 wRange = wSheet.Range[wSheet.Cells[5, 1], wSheet.Cells[5, 2]]; wRange.Select(); wRange.Font.Color = ColorTranslator.ToOle(Color.Red); wRange.Interior.Color = ColorTranslator.ToOle(Color.Yellow); // 自動調整欄寬 wRange = wSheet.Range[wSheet.Cells[1, 1], wSheet.Cells[5, 2]]; wRange.Select(); wRange.Columns.AutoFit(); try { //另存活頁簿 wBook.SaveAs(pathFile, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); Console.WriteLine( "儲存文件於 " + Environment.NewLine + pathFile); } catch (Exception ex) { Console.WriteLine( "儲存檔案出錯,檔案可能正在使用" + Environment.NewLine + ex.Message); } } catch (Exception ex) { Console.WriteLine( "產生報表時出錯!" + Environment.NewLine + ex.Message); } //關閉活頁簿 wBook.Close( false , Type.Missing, Type.Missing); //關閉Excel excelApp.Quit(); //釋放Excel資源 System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp); wBook = null ; wSheet = null ; wRange = null ; excelApp = null ; GC.Collect(); Console.Read(); } |
輸出結果:
沒有留言:
張貼留言