使用.xlsx扩展名导出Excel文件
我试图用这些代码导出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);
连接string是
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,因为文件格式或文件扩展名无效。 validation该文件是否已损坏,并且文件扩展名与文件的格式相匹配
错误。
将.xlsx扩展名更改为.xls后,文件正在打开。
但是xlsx选项必须在不改变扩展名的情况下工作。
计算机上安装了Microsoft Access数据库引擎2010版和Office Professional Plus 2013。
我怎么解决这个问题?
这是因为OLEDB按照https://support.microsoft.com/zh-CN/kb/928979保存为二进制文件,而不是XML
切换到一个XML库,像ClosedXml,或使用标准的Excel.Interop。