我正在尝试使用以下代码导出 xlsx 文件:
DataTable dataTable= new DataTable(tableName);
OleDbDataAdapter adapter = new OleDbDataAdapter(select, accessConnection);
adapter.FillSchema(dataTable, SchemaType.Source);
foreach (DataRow result in dtResult.Rows)
{
DataRow newRow = dataTable.NewRow();
foreach (DataRow drAssign in dtAssignment.Rows)
{
newRow[drAssign["Destination"].ToString()] = result[drAssign["Source"].ToString()];
}
dataTable.Rows.Add(newRow);
}
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";
我正在尝试将 100 行导出到 xlsx 文件。当我尝试打开 Excel 文件时,我得到
'Excel 无法打开 test.xlsx,因为文件格式或文件
扩展名无效。验证文件未损坏
并且文件扩展名与文件的格式匹配'
error.
将 .xlsx 扩展名更改为 .xls 后,文件正在打开。
但 xlsx 选项必须在不更改扩展名的情况下工作。
计算机上安装了 Microsoft Access Database Engine 2010 版本和 Office Professional Plus 2013。
我怎么解决这个问题?
这是因为 OLEDB 保存为二进制文件,而不是 XML,按照https://support.microsoft.com/en-us/kb/928979 https://support.microsoft.com/en-us/kb/928979
切换到 XML 库以像 ClosedXml 一样执行此操作或使用标准 Excel.Interop。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)