我從.xlsx(Excel)文件讀取時遇到問題。我試圖使用:如何從XLSX(Excel)讀取?
var fileName = @"C:\automated_testing\ProductsUploadTemplate-2015-10-22.xlsx";
var connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", fileName);
var adapter = new OleDbDataAdapter("SELECT * FROM [workSheetNameHere$]", connectionString);
var ds = new DataSet();
adapter.Fill(ds, "XLSData");
DataTable data = ds.Tables["XLSData"];
// ... Loop over all rows.
StringBuilder sb = new StringBuilder();
foreach (DataRow row in data.Rows)
{
sb.AppendLine(string.Join(",", row.ItemArray));
}
但如果由於connectionString
失敗。所以,我更新了行支持的.xlsx:
var connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=Excel 12.0;", fileName);
,但我得到:
的「Microsoft.ACE.OLEDB.12.0」供應商未註冊的本地機器上。
(這裏的問題是,我不能到我的遠程測試機上安裝新的軟件,所以我不能夠解決這個問題,需要尋找其他的解決方案。)
我做的還需要確保導入的數據將以一種簡單的方式存儲(我是初學者程序員)讓我遍歷它,即用行數據創建對象。
其他方法我檢查:
評論:看來可能是我的工作,但不支持一個未知的尺寸的Excel文件(行和列的隨機數)。
評論:不支持設置不同的行不是第一個(列名在我的一些Excel文件,也有4-6第一排意見,然後是頭排和下面的數據)。
點評:作爲上述同樣的問題。
評論:下載包重量超過60MB,它要求我的系統上,這是不可能在我的處境安裝。無論如何,人們評論說它僅限於150行。
同時我會盡量檢查https://code.google.com/p/linqtoexcel/,但所有其他想法都非常值得歡迎!
編輯:只是檢查了LinqToExcel,同樣的問題如上:
的「Microsoft.ACE.OLEDB.12.0」供應商未註冊的本地機器上。
EDIT2:歸根結底,這似乎是這個解決方案解決了我的問題:
https://stackoverflow.com/a/19065266/3146582
epplus https://epplus.codeplex.com/ – Fredou
@Fredou:沒有它創建電子表格?我需要從一個閱讀。你有什麼例子嗎? –
它也可以讀取excel文件,檢查這個stackoverflow問題http://stackoverflow.com/questions/11685204/reading-excel-spreasheet-using-epplus或這個博客條目http://blog.fryhard.com/archive/2010 /10/28/reading-xlsx-files-using-c-and-epplus.aspx – Fredou