我'我试图用这些代码导出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,因为文件格式或文件 扩展无效。验证文件是否已损坏 并且文件扩展名与文件'
的格式相匹配
错误。
将.xlsx扩展名更改为.xls后,文件正在打开。
但必须在不更改扩展名的情况下使用xlsx选项。
计算机上安装了Microsoft Access数据库引擎2010版和Office Professional Plus 2013。
我该如何解决这个问题?
答案 0 :(得分:1)
这是因为根据https://support.microsoft.com/en-us/kb/928979
,OLEDB保存为二进制文件,而不是XML切换到XML库,使其像ClosedXml一样,或使用标准Excel.Interop。