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

ASP.NET 存取 Excel 檔案:OLEDB Provider 完整範例 (C# / VB.NET)

     編輯:關於C語言

核心連接字串

Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=C:\Exceltest.xls;
Extended Properties="Excel 8.0;"
  • Excel 8.0 對應 Excel 97-2003 (.xls)
  • Excel 2007+ (.xlsx) 需 Microsoft.ACE.OLEDB.12.0 + Extended Properties="Excel 12.0 Xml;"
  • 工作表名稱需加 $ 結尾:[Sheet1$]

C# 完整範例 (ASP.NET Web Forms)

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>



Excel表格內容:

VB.NET 完整範例

<%@ Page Language="VB" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>



Excel表格內容:

常見問題與解決

現代替代方案

  • EPPlus / ClosedXML / NPOI:純 .NET 程式庫,無需安裝 Office/ACE,支援 .xlsx/.xls,功能豐富 (樣式、公式、圖表)
  • ExcelDataReader:高效能唯讀流式讀取
  • Open XML SDK:微軟官方底層 SDK,適合伺服器端批量生成

安全性提醒

  • 上傳的 Excel 檔可能包含惡意巨集/公式,伺服器端嚴禁啟用巨集
  • 使用純 .NET 庫 (NPOI/ClosedXML) 避免 OLEDB 攻擊面
  • 限制上傳檔案大小、驗證副檔名與 MIME
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
問題原因解決
「未在本機電腦上註冊提供者」未安裝 Access Database Engine安裝 AccessDatabaseEngine.exe (x64 版供 IIS 64位)
IIS 64位報錯應用程式池啟用 32 位衝突應用程式池 → 進階設定 → 啟用 32 位應用程式 = True
欄名包含空格/特殊字元SQL 需括號SELECT [Column Name] FROM [Sheet1$]
數字儲存為文字導致排序錯誤Excel 混合型別掃描前 8 列決定連接字串加 IMEX=1 強制文字模式
首列非標題預設 HDR=YESExtended Properties="Excel 8.0;HDR=NO;"