📊 C# 讀取 Excel 教學(使用 Interop,含資源釋放重點)

更新 發佈閱讀 7 分鐘

在實務開發中,我們常常需要從 Excel 讀取資料,例如:

👉 報表匯入

👉 資料轉換 👉 批次處理

這篇會帶你用 Microsoft.Office.Interop.Excel 來實作一個最基本的 Excel 讀取範例,並說明幾個非常重要的細節(尤其是資源釋放!)


🧩 Step 1:安裝套件

在專案中透過 NuGet 安裝:

Microsoft.Office.Interop.Excel

🧩 Step 2:匯入命名空間

using Excel = Microsoft.Office.Interop.Excel;

這樣可以讓程式碼更簡潔(不用一直寫很長的 namespace)


🚀 範例:讀取 Excel 並輸出內容

using System;using Excel = Microsoft.Office.Interop.Excel;namespace ExcelReaderExample{    class Program    {        static void Main(string[] args)        {            string excelFilePath = @"C:\path\to\your\file.xlsx";            Excel.Application excelApp = new Excel.Application();            Excel.Workbook workbook = excelApp.Workbooks.Open(excelFilePath);            Excel.Worksheet worksheet = workbook.Worksheets[1];            int rowCount = worksheet.UsedRange.Rows.Count;            int colCount = worksheet.UsedRange.Columns.Count;            for (int row = 1; row <= rowCount; row++)            {                for (int col = 1; col <= colCount; col++)                {                    Excel.Range cell = worksheet.Cells[row, col];                    string cellValue = cell.Value != null ? cell.Value.ToString() : "";                    Console.Write(cellValue + "\t");                }                Console.WriteLine();            }            // 關閉與釋放資源            workbook.Close(false);            excelApp.Quit();            System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet);            System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);            System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);        }    }}

🔍 程式碼重點解析

1️⃣ 開啟 Excel

Excel.Application excelApp = new Excel.Application();Excel.Workbook workbook = excelApp.Workbooks.Open(excelFilePath);

👉 這裡其實是「啟動一個 Excel 程式」並開啟檔案


2️⃣ 取得工作表

Excel.Worksheet worksheet = workbook.Worksheets[1];

⚠️ 注意:

Excel 的索引是 從 1 開始,不是 0


3️⃣ 讀取資料範圍

worksheet.UsedRange

👉 可以取得「實際有資料的範圍」,避免掃整張表


4️⃣ 讀取儲存格內容

Excel.Range cell = worksheet.Cells[row, col];

👉 再從 cell.Value 取值(可能是 null,要注意)


⚠️ 超重要:COM 物件一定要釋放!

Interop 本質是 COM 技術,如果不釋放,會發生:

❌ Excel 背景程序殘留

❌ 記憶體洩漏 ❌ 程式卡住或當掉


✅ 正確釋放方式

Marshal.ReleaseComObject(object);

而且順序建議:

👉 先 Worksheet

👉 再 Workbook 👉 最後 Application


💡 實務優化建議(很關鍵)

🔹 1. 關閉 Excel 畫面(避免閃畫面)

excelApp.Visible = false;

🔹 2. 關閉警告視窗

excelApp.DisplayAlerts = false;

🔹 3. 避免逐格讀取(效能很差)

如果資料很多,建議改成一次讀:

object[,] data = worksheet.UsedRange.Value;

👉 效能差異會非常明顯(尤其上萬筆資料)


🚨 使用 Interop 的限制

這點很多人會忽略👇

  • 需要安裝 Microsoft Excel
  • 不適合做伺服器(例如 Web API)
  • 效能較慢
  • COM 管理麻煩

🔄 替代方案(更推薦)

如果你是做工具或後端,其實可以考慮:

👉 EPPlus(最常用)

👉 ClosedXML(好上手)

✔ 不需要安裝 Excel

✔ 效能更好 ✔ 不用處理 COM


✨ 結語

這篇帶你完成:

✔ 使用 Interop 讀取 Excel

✔ 掌握 COM 釋放重點 ✔ 理解實務上的效能與限制

如果你只是做「桌面工具(WinForms)」👉 Interop OK

但如果是「大量資料 / 服務」👉 建議改用 EPPlus 👍

留言
avatar-img
程式輕鬆玩
82會員
202內容數
這裡將以輕鬆風格,深入探討程式設計的基礎和高級概念。從程式語言到演算法,我們將以易懂的方式解釋每個主題,讓你輕鬆掌握。無論你是初學者或有經驗者,都能在這裡找到適合你的內容。無論你的目標是成為專業開發者還是擴展知識,我們都會陪伴你一同成長!
程式輕鬆玩的其他內容
2025/04/20
本週科技圈掀起多項重磅消息:OpenAI於4月14日釋出GPT‑4.1系列模型,進一步強化編碼與長文理解能力 Reuters;Chipolo推出POP藍牙追蹤器,同時支援Apple與Google尋找網路 The Verge;南韓新創RLWRLD完成1,480萬美元募資,將打造專屬機器人基礎模型
Thumbnail
2025/04/20
本週科技圈掀起多項重磅消息:OpenAI於4月14日釋出GPT‑4.1系列模型,進一步強化編碼與長文理解能力 Reuters;Chipolo推出POP藍牙追蹤器,同時支援Apple與Google尋找網路 The Verge;南韓新創RLWRLD完成1,480萬美元募資,將打造專屬機器人基礎模型
Thumbnail
2025/04/20
本週遊戲動態涵蓋經典 25 週年重返 PC 平台、回合制策略新作重燃星戰熱潮、Remedy 荒誕合擊新作搶先曝光、Game Pass 下架名單震撼登場,以及 Steam 獨立新秀推薦不容錯過 PC GamerWindows Central。
Thumbnail
2025/04/20
本週遊戲動態涵蓋經典 25 週年重返 PC 平台、回合制策略新作重燃星戰熱潮、Remedy 荒誕合擊新作搶先曝光、Game Pass 下架名單震撼登場,以及 Steam 獨立新秀推薦不容錯過 PC GamerWindows Central。
Thumbnail
2025/04/08
近來因為川普政府啟動全新一輪對等關稅政策,全球貿易風暴席捲而來,而台灣面臨的衝擊更是不容小覷。美方以台灣過去對美出口關稅達64%為依據,採取「對等關稅」原則回敬徵收32%關稅,這一舉措不僅使得國際市場恐慌連連,台股也出現劇烈下跌,吸引了各界關注。
Thumbnail
2025/04/08
近來因為川普政府啟動全新一輪對等關稅政策,全球貿易風暴席捲而來,而台灣面臨的衝擊更是不容小覷。美方以台灣過去對美出口關稅達64%為依據,採取「對等關稅」原則回敬徵收32%關稅,這一舉措不僅使得國際市場恐慌連連,台股也出現劇烈下跌,吸引了各界關注。
Thumbnail
看更多
你可能也想看
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
在實務開發中,我們常常需要從 Excel 讀取資料,例如: 👉 報表匯入 👉 資料轉換 👉 批次處理 這篇會帶你用 Microsoft.Office.Interop.Excel 來實作一個最基本的 Excel 讀取範例,並說明幾個非常重要的細節(尤其是資源釋放!)
Thumbnail
在實務開發中,我們常常需要從 Excel 讀取資料,例如: 👉 報表匯入 👉 資料轉換 👉 批次處理 這篇會帶你用 Microsoft.Office.Interop.Excel 來實作一個最基本的 Excel 讀取範例,並說明幾個非常重要的細節(尤其是資源釋放!)
Thumbnail
一、套件安裝 在使用Python操控Excel前,需要先安裝openpyxl模組。 二、建立工作簿 不需要先建立Excel檔案,就可以開始使用openpyxl;只要引用Workbook類別,就可以開始工作。 一個工作簿被建立起來的時候,至少會含有一張工作表。你可以用active屬性來使用這張工作表。
Thumbnail
一、套件安裝 在使用Python操控Excel前,需要先安裝openpyxl模組。 二、建立工作簿 不需要先建立Excel檔案,就可以開始使用openpyxl;只要引用Workbook類別,就可以開始工作。 一個工作簿被建立起來的時候,至少會含有一張工作表。你可以用active屬性來使用這張工作表。
Thumbnail
Visual Basic for Applications(VBA)是一種功能強大的程式語言,廣泛用於自動化 Microsoft Office 應用程式中的重複性任務。在這篇教學文章中,我們將介紹如何使用 VBA 來新增、刪除和移動檔案。
Thumbnail
Visual Basic for Applications(VBA)是一種功能強大的程式語言,廣泛用於自動化 Microsoft Office 應用程式中的重複性任務。在這篇教學文章中,我們將介紹如何使用 VBA 來新增、刪除和移動檔案。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
R語言是一種統計學與資料科學領域的程式語言,具有強大的統計分析和資料處理功能。本文介紹R語言在統計常見的基本語法,包含:安裝和執行套件、載入和查看資料、基本敘述統計函式、輸出資料、輸出檔案和遺失值。
Thumbnail
R語言是一種統計學與資料科學領域的程式語言,具有強大的統計分析和資料處理功能。本文介紹R語言在統計常見的基本語法,包含:安裝和執行套件、載入和查看資料、基本敘述統計函式、輸出資料、輸出檔案和遺失值。
Thumbnail
專案產生大量又瑣碎的作業做處理,眼下要從iReport的設定檔(jrxml)擷取每一項套印參數出來,提供給別人做Excel公式的資料表進行作業。
Thumbnail
專案產生大量又瑣碎的作業做處理,眼下要從iReport的設定檔(jrxml)擷取每一項套印參數出來,提供給別人做Excel公式的資料表進行作業。
Thumbnail
1. 如何開始巨集(VBA) 2. 初步認識編寫VBA的面板 3. 儲存啟用VBA的活頁簿檔案
Thumbnail
1. 如何開始巨集(VBA) 2. 初步認識編寫VBA的面板 3. 儲存啟用VBA的活頁簿檔案
Thumbnail
Excel有個極其實用的工具VBA,讓我們透過語法撰寫對Excel下指令,雖然UiPath也有內建Excel相關功能,不過相較之下VBA可處理更多精細且完整的活動,因此我們在用UiPath開發流程時,可使用Invoke VBA功能呼叫Excel檔案中已撰寫好的VBA語法!
Thumbnail
Excel有個極其實用的工具VBA,讓我們透過語法撰寫對Excel下指令,雖然UiPath也有內建Excel相關功能,不過相較之下VBA可處理更多精細且完整的活動,因此我們在用UiPath開發流程時,可使用Invoke VBA功能呼叫Excel檔案中已撰寫好的VBA語法!
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News