如何读取 Excel 文件? [复制]
Posted
技术标签:
【中文标题】如何读取 Excel 文件? [复制]【英文标题】:How can I read Excel file? [duplicate] 【发布时间】:2015-04-28 06:48:39 【问题描述】:我想用这段代码读取 Excel 文件:
var fileName = @"d:\1.xlsx";
var connectionString = string.Format(
"Provider=Microsoft.Jet.OLEDB.4.0; data source="+fileName+
"; Extended Properties=Excel 8.0;", fileName);
var adapter = new OleDbDataAdapter("SELECT * FROM [sheet1$]", connectionString);
var ds = new DataSet();
adapter.Fill(ds, "anyNameHere");
DataTable data = ds.Tables["anyNameHere"];
但是当运行程序时出现这个错误:
“System.Data.OleDb.OleDbException”类型的未处理异常 发生在 System.Data.dll
附加信息:外部表不是预期的格式。
我该如何解决?
【问题讨论】:
这个答案评价很高:***.com/a/1363480/49 试试吧 你应该看看这个网站connectionstrings.com/excel 【参考方案1】:您的 excel 文件是 2007 版本 *.xlsx 并且您使用了错误的提供程序 (Microsoft.Jet.OLEDB.4.0)。
试试这个方法:
var fileName = @"d:\1.xlsx";
var connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties=Excel 12.0;";
【讨论】:
【参考方案2】:它已经回答了过去帖子中的问题请点击以下链接
Answer link
答案很简单
sConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Test.xlsx;Extended Properties=\"Excel 12.0;HDR=No;IMEX=1\"";
【讨论】:
【参考方案3】:你有 diff 版本的 Excel 文件,获取文件名,如果扩展名为 .xlsx,使用这个
var fileName = @"d:\1.xlsx";
var connectionString = string.Format(
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="0";Extended Properties=Excel 12.0;", fileName);
【讨论】:
【参考方案4】:我建议这个名为FileHelpers 的库。自从发现它以来,我从未自己编写过管道代码。它使您可以专注于实际的业务逻辑。
【讨论】:
以上是关于如何读取 Excel 文件? [复制]的主要内容,如果未能解决你的问题,请参考以下文章