首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# 專案引用 Excel Interop 找不到命名空間解決方案

     編輯:關於C#

常見錯誤現象

錯誤 CS0246:找不到類型或命名空間名稱 'Excel' (是否缺少 using 指令或組件參考?)

明明已在參考中加入 Microsoft Excel 14.0/15.0/16.0 Object Library**,專案卻無法識別 Excel.Application 等類型。

根本原因

  • Visual Studio 專案類型不同 (.NET Framework / .NET Core / .NET 5+) 對 COM 互通組件的解析方式不同。
  • 部分專案自動產生的 Interop 組件命名空間為 Microsoft.Office.Interop.Excel,而非單純的 Excel。
  • 缺少 Primary Interop Assemblies (PIA) 或未正確部署。

快速解決方案:命名空間別名

在程式碼頂部加入別名導向,即可沿用習慣的 Excel 簡寫:

using Excel = Microsoft.Office.Interop.Excel;

// 之後即可直接使用
Excel.Application app = new Excel.Application();
Excel.Workbook wb = app.Workbooks.Add();
Excel.Worksheet ws = (Excel.Worksheet)wb.ActiveSheet;

徹底修正步驟 (依序嘗試)

  1. NuGet 安裝官方 PIA:
    Install-Package Microsoft.Office.Interop.Excel
    
  2. 確認參考屬性:在「參考」中右鍵 Microsoft.Office.Interop.Excel → 屬性 → 設定 Embed Interop Types = True (預設為 True,可減少部署檔案)。
  3. 目標平台一致:專案 Prefer 32-bit 勾選狀態需與 Office 安裝位元數一致 (Office 32-bit → 勾選;Office 64-bit → 取消勾選)。
  4. 修復 Office 安裝:控制台 → 程式集 → Office → 變更 → 快速修復。
  5. 清除快取:刪除 bin/obj 資料夾並重建專案。

替代方案:免 Office、免 Interop 的純 .NET 程式庫

總結

最快解法是加入 using Excel = Microsoft.Office.Interop.Excel; 別名;長期專案建議改用 EPPlus 或 ClosedXML 等純 managed 程式庫,避免 Office 版本、位元數、授權與部署的諸多坑點。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
程式庫特點適用場景
EPPlus支援 .xlsx、效能佳、無 Office 相依伺服器端報表匯出、大量資料處理
ClosedXMLAPI 直覺、支援樣式、無 Office 相依一般商務應用匯入匯出
NPOI支援 .xls/.xlsx、Java POI 移植、成熟穩定需相容舊版 .xls 格式