【问题标题】:Export to Excel .xlsx File导出到 Excel .xlsx 文件
【发布时间】:2016-01-25 15:56:39
【问题描述】:

我正在尝试使用以下代码导出 xlsx 文件:

OleDbDataAdapter adapter = new OleDbDataAdapter(select, accessConnection);
adapter.Update(dataTable);

连接字符串是

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\AA\Desktop\work10.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES";

我正在尝试将 200000 行导出到 xlsx 文件,但得到 电子表格已满 错误。 当我尝试打开 excel 文件时,我收到 file extension is not valid 错误。

将 .xlsx 扩展名更改为 .xls 后,文件正在打开,但行数对我来说不够。

Microsoft Access Database Engine 2010 版本已安装到计算机。

我该如何解决?

【问题讨论】:

  • 在连接字符串中添加IMEX=1选项还会出现这种情况吗?
  • 导致另一个问题

标签: c# excel oledb oledbdataadapter


【解决方案1】:

好像that the OLEDB Excel driver is limited to 65536 rows。因此,您不能使用当前代码导出 200000 行。抱歉,它不起作用,而且你无法让它起作用。

如果需要写入超过 65536 行,则需要使用另一种 Excel 导出机制,例如 a third-party C# Excel library,或者考虑使用另一种文件格式,例如 CSV。

【讨论】:

  • 我知道 .xls 是有限的,所以我正在尝试导出 .xlsx 文件。我的 ConnectionString 似乎适合 .xlsx 文件
  • @user1451549:显然,这不仅是 xls 文件格式的限制,也是 OLEDB 驱动程序(xls 和 xlsx)的限制。您的连接字符串看起来不错。
  • 感谢您的回复。当我尝试导出少于 65536 行时,我会问另一个问题,导出成功完成。之后我试图打开导出的 xlsx 文件,我得到“Excel 无法打开 test.xlsx,因为文件格式或文件扩展名无效。验证文件没有损坏,并且文件扩展名与文件错误的格式匹配。我该如何解决?
猜你喜欢
  • 1970-01-01
  • 2015-09-27
  • 2018-01-12
  • 1970-01-01
  • 1970-01-01
  • 2018-07-18
  • 1970-01-01
  • 2022-01-24
相关资源
最近更新 更多