Я пытаюсь прочитать данные из 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\assembly\GAC_MSIL\System.Numerics\v4.0_4.0.0.0__b77a5c561934e089\System.Numerics.dll». Пропущены символы загрузки. Модуль оптимизирован, и включена опция отладчика «Только мой код». Телеметрия Application Insights (ненастроенная): {"name":"Microsoft.ApplicationInsights.Dev..,"ai.operation.name":"POST FileDownload"},"data":{"baseType":"RequestData","baseData ":{"ver":2,"id":"9AAlQXMsrt4=","name":"POST FileDownload","duration":"00:00:06.9290000","success":false,"responseCode":" 500","url":"http://localhost:52087/api/FileDownload?Company_ID=CO_2005","properties":{"DeveloperMode":"true"}}}} Поток 0x3de0 завершился с кодом 0 (0x0). Программа "[19508] chrome.exe: WebKit" завершилась с кодом код -1 (0xffffffff) Программа «[15740] iisexpress.exe» завершилась с кодом -1 (0xffffffff).
Я что-то упустил?
file_name
полный абсолютный путь к файлу Excel? - person LocEngineer   schedule 10.11.2017OleDbConnectionStringBuilder
, как описано в принятом ответе здесь: stackoverflow.com/questions/6983973/ - person LocEngineer   schedule 10.11.2017