我从.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