在實務工作中,使用 C# 操作 Excel 來自動產生報表是非常常見的需求。本篇 C# 操作 Excel 教學,將帶你從零開始實作 Excel 自動化,包含資料寫入、報表生成等常見功能,讓你可以用 .NET 快速提升工作效率。
假設我們今天接到生產部門的同事說,我想產生以下Excel的格式:

收到需求後我們就趕緊開始吧!
開始專案開發
1 . 首先,我們要先打開Visual Studio 2022 建立一個Asp.Net C# Windows Forms(如不熟悉建立專案流程可點連結參考)

2 . 拖拉一個Button到畫面中,讓我們有一個程式啟動的按鈕

3 . 對畫面中的button1連點兩下,自動產生button1_Click區塊
編輯器會自動幫你產生 button1_Click這個區塊。這個區塊就是告訴編譯器當我的程式執行起來後,button1這個按鈕如果被按下去,就會進來button1_Click區塊執行裡面的程式碼。

4 . 開啟ChatGPT
在ChatGPT上開始詢問,我的習慣詢問方式會將使用的程式寫在最前面需求寫在後面。
以這個需求為例: asp.net c# windows forms 產生Excel
每個人的ChatGPT回答都會有所不同,剛開始入門先照著我的版本一起去實作即可。
以下為我的ChatGPT回答(因為產生Excel的套件非常多種,我選擇我比較常使用的NPOI這個套件)
-------------------------------------------------------------------------------------------------------
步驟 1:安裝 NPOI
使用 NuGet 包管理器來安裝 NPOI:
Install-Package NPOI
步驟 2:編寫生成 Excel 文件的程式碼
下面是如何創建 Excel 文件並將數據導出到文件的基本範例:
using NPOI.HSSF.UserModel;
using NPOI.XSSF.UserModel;
using NPOI.SS.UserModel;
using System;
using System.IO;
using System.Windows.Forms;
namespace ExcelExportExample
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// 按鈕點擊事件,導出 Excel
private void btnExportToExcel_Click(object sender, EventArgs e)
{
// 創建工作簿
IWorkbook workbook = new XSSFWorkbook();
ISheet sheet = workbook.CreateSheet("Sheet1");
// 創建表頭
IRow headerRow = sheet.CreateRow(0);
headerRow.CreateCell(0).SetCellValue("ID");
headerRow.CreateCell(1).SetCellValue("Name");
headerRow.CreateCell(2).SetCellValue("Age");
// 添加數據行
IRow row1 = sheet.CreateRow(1);
row1.CreateCell(0).SetCellValue(1);
row1.CreateCell(1).SetCellValue("John Doe");
row1.CreateCell(2).SetCellValue(30);
IRow row2 = sheet.CreateRow(2);
row2.CreateCell(0).SetCellValue(2);
row2.CreateCell(1).SetCellValue("Jane Smith");
row2.CreateCell(2).SetCellValue(25);
// 將文件寫入磁碟
using (FileStream fs = new FileStream("exportedData.xlsx", FileMode.Create, FileAccess.Write))
{
workbook.Write(fs);
}
MessageBox.Show("Excel 文件已成功生成!");
}
}
}
-------------------------------------------------------------------------------------------------------
接下來我們跟著ChatGPT的步驟開始!
ChatGPT 步驟1:安裝NPOI
這部分初學者建議不要用下指令的方式去下載,指令對於初學者比較難懂,我們用asp.net原本就有提供的NuGet(專門下載套件的工具)來下載安裝NPOI。
- 在編譯器畫面最右邊方案總管找到我們的專案(圖一)
(圖一)

- 對著專案按下右鍵,選擇管理NuGet套件(N)...(圖二)
(圖二)

- 進入畫面後,上方的要選到瀏覽 -> 輸入框輸入NPOI -> 選第一個選項 -> 右邊跳出NPOI的相關介紹,按下安裝(圖三)
(圖三)

- 跳出訊息直接按下套用(圖四)
(圖四)

- 按下我接受(圖五)
(圖五)

- 跑完後下方訊息出現已完成,右邊安裝按鈕會顯示成解除安裝,代表安裝完成(圖六)
(圖六)

ChatGPT 步驟2: 編寫生成Excel的程式碼
在ChatGPT步驟2,ChatGPT給了我們範例程式碼,這段程式碼稍微瞄一下會發現跟我們的Form1.cs檔案裏面的程式碼很像,並且仔細觀察會看到:
private void btnExportToExcel_Click(object sender, EventArgs e)
這時候就會聯想到我們前面的步驟3,當時我們對button1點了兩下,在Form1.cs有生成一個button1按下會進入的區塊
private void button1_Click(object sender, EventArgs e)
ChatGPT範例的btnExportToExcel_Click這個區塊就是按鈕的進入點,只是範例的按鈕名稱是btnExportToExcel而我們的是button1,所以我們只要把ChatGPT步驟2範例的程式碼22-50行複製起來,貼上我們的private void button1_Click(object sender, EventArgs e){}大括弧裡面,到時候程式執行起來,按下button1就會進入區塊執行產生Excel的程式碼了。

(補充說明: 步驟4 我認為是一個很重要的環節,今天不管懂不懂程式,使用AI開發會提升很多開發的效率。 假如我是一個初學者,我可以很快透過ChatGPT來更快達到學習成效。 如果是一個經驗豐富的開發者,則可以讓AI去幫我們記住程式的語法就可以,不需要耗費自己的腦袋資源去背固定的東西,只要保持著清楚的思維以及知道怎麼問就可以。我自己也是重來都不背程式的語法,需要用到的時候再上網查即可。)
5 .按下執行來測試Excel產生結果
- 全部儲存並且按下開始按鈕。(圖一)
(圖一)

- 跑出執行畫面並且點下button1。(圖二)
(圖二)

- 執行成功按下確定。(圖三)
(圖三)

- 關閉程式。(圖四)
(圖四)

- 到路徑底下查看產出的Excel。路徑可點選右邊方案總管,對著專案點一下,下方屬性列會顯示專案資料夾位置。(圖五)
(圖五)

- 複製路徑打開隨便一個資料夾把路徑貼上,打開裡面的bin資料夾。(圖六)
(圖六)

- 打開Debug資料夾。(圖七)
(圖七)

- 進入資料夾後就會看到程式產生的exportedData.xlsx檔案。(圖八)
(圖八)

- 打開查看結果。(圖九)
(圖九)

結論
到這裡我們已經成功的使用程式產生出Excel檔案了。為了讓大家對程式不要感到厭煩,我們到這邊就算一個階段的完成,大家可以稍做休息好好享受自己努力的成果,提升一點成就感。不過,目前產出來的範例檔案跟我們接到的需求不同,下一篇我們再來一起學習如何把範例檔案調整成適合我們需求的格式吧!














