2016-01-25 183 views
2

我试图以XLSX文件导出这些代码:导出到Excel .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"; 

我试图出口20万行XLSX文件但获取电子表格已满错误。 当我尝试打开excel文件时,出现文件扩展名无效错误。

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

Microsoft Access数据库引擎2010版本安装到计算机上。

我该如何解决?

+0

如果您将“IMEX = 1”选项添加到连接字符串,它还会发生吗? –

+0

它导致另一个问题 – user1451549

回答

1

看起来好像是that the OLEDB Excel driver is limited to 65536 rows。因此,您无法使用当前的代码导出200000行。对不起,它不起作用,你无法使它工作。

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

+0

我知道.xls是有限的,所以我试图导出.xlsx文件。我的ConnectionString似乎适用于.xlsx文件 – user1451549

+0

@ user1451549:显然,它不仅是xls文件格式的限制,也是OLEDB驱动程序(xls和xlsx)的限制。你的连接字符串看起来很好 – Heinzi

+0

谢谢你的回应。当我尝试导出少于65536行时,我会问另一个问题,成功导出完成。之后,我试图打开导出的xlsx文件,我得到'Excel无法打开test.xlsx,因为文件格式或文件扩展名无效。验证文件是否已损坏,文件扩展名是否与文件错误的格式匹配。我该如何解决它? – user1451549