关于将数据集转换为Excel的咨询
本文关键字:Excel 转换 数据集 | 更新日期: 2023-09-27 18:21:51
我有这个代码用于从数据集传输到Excel(xlsx)
using Excel = Microsoft.Office.Interop.Excel;
using Microsoft.Office.Interop.Excel;
string SQL = "SELECT Store,Zitur FROM CounterG group by Store,Zitur";
var dsView = new DataSet();
using (var adp = new OleDbDataAdapter(SQL, Conn))
adp.Fill(dsView, "CounterG");
Microsoft.Office.Interop.Excel.Application xla = new Microsoft.Office.Interop.Excel.Application();
xla.Visible = false;
Workbook wb = xla.Workbooks.Add(XlSheetType.xlWorksheet);
Worksheet ws = (Worksheet)xla.ActiveSheet;
ws.Name = "Tab1";
int i = 1;
foreach (DataRow comp in dsView.Tables[0].Rows)
{
ws.Cells[i, 1] = comp[0].ToString();
ws.Cells[i, 2] = comp[1].ToString();
i++;
}
if (File.Exists(@"d'DDD.xlsx"))
File.Delete(@"d:'DDD.xlsx");
//xla.SaveWorkspace(@"d:'DDD.xlsx");
xla.Save(@"d:'DDD.xlsx");
但我在以下行上得到了错误"HRESULT异常:0x800A03EC":xla.Save(@"d:'DDD.xlsx");
我使用.NET Framework 2.0开发WinForm。
请尝试使用Workbook.SaveAs,如下所示。此外,您还需要包含Excel.Quit()才能发布该文件。
//xla.SaveWorkspace(@"d:'DDD.xlsx");
wb.SaveAs(Filename: @"d:'DDD.xlsx", FileFormat: XlFileFormat.xlOpenXMLWorkbook);
xla.Quit(); // Exit Excel releasing the file
根据文档,您不应该使用Excel.Application.Save来创建文件:
第一次保存工作簿时,请使用Microsoft.Office.Interop.Excel_Workbook.SaveAs()方法来指定文件的名称。