我试图在没有办公室安装的情况下从C#中读取Excel中的数据。
我的代码
DataTable dTable;
DataTable dTable_Fixed;
string sProvider = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source= {0};Extended Properties='Excel 12.0;HDR=No;IMEX=1'";
string sourceConstr = string.Format(sProvider.ToString(), file_name);
OleDbConnection con = new OleDbConnection(sourceConstr);
OleDbCommand oleDbCmd = new OleDbCommand();
con.Open();
DataTable dt1 = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
string firstExcelSheetName = dt1.Rows[0][2].ToString();
string query = "select * from [" + firstExcelSheetName + "]";
OleDbDataAdapter data = new OleDbDataAdapter(query, con);
data.TableMappings.Add("Table", "Sheet1");
dTable = new DataTable();
data.Fill(dTable);
未建立连接。我收到错误日志。
抛出异常:'System.Data.OleDb.OleDbException'中 System.Data.dll'iisexpress.exe'(CLR v4.0.30319:/ LM / W3SVC / 2 / ROOT-1-131547875442986389):已加载 'C:\ WINDOWS \ Microsoft.Net \装配\ GAC_MSIL \ System.Numerics \ v4.0_4.0.0.0__b77a5c561934e089 \ System.Numerics.dll'。 跳过加载符号。模块已优化并具有调试器选项 'Just My Code'已启用。应用见解遥测 (取消配置): { “名”: “Microsoft.ApplicationInsights.Dev ..,” ai.operation.name “:” POST FileDownload “},” 数据 “:{” 基本类型 “:” 的RequestData “ ”baseData“:{ ”VER“:2 ”ID“: ”9AAlQXMsrt4 =“, ”名称“:” POST FileDownload”, “持续时间”: “00:00:06.9290000”, “成功”:假 “responseCode”: “500”, “URL”: “http://localhost:52087/api/FileDownload?Company_ID=CO_2005”, “属性”:{ “DeveloperMode”: “真正”}}}} 线程0x3de0已退出,代码为0(0x0)。该计划'[19508] chrome.exe:WebKit'已退出,代码为-1(0xffffffff)。该程序 '[15740] iisexpress.exe已退出,代码为-1(0xffffffff)。
我错过了什么吗?