将 datagridview 内容导出到 excel
Export datagridview content to excel
我想将 datagridview 内容导出到 excel,但它抛出异常。
我有一个方法
private void exportDataGridToExcel(DataGridView grd)
{
if (saveFileToExcel.ShowDialog() != DialogResult.Cancel)
{
Microsoft.Office.Interop.Excel.Application Excel = new Microsoft.Office.Interop.Excel.Application();
Workbook wb;
Worksheet ws;
wb = Excel.Workbooks.Add();
ws = (Worksheet)wb.Worksheets.get_Item(1);
for (int i = 0; i < grd.Columns.Count + 1; i++)
{
ws.Cells[1, i] = grd.Columns[i - 1].HeaderText;
}
for (int i = 0; i <= grd.Rows.Count; i++)
{
for (int j = 0; j <= grd.Columns.Count; j++)
{
ws.Cells[i + 1, j + 1] = grd.Rows[i - 1].Cells[j].Value.ToString();
}
}
wb.SaveAs(saveFileToExcel.FileName, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal);
wb.Close(ws);
Excel.Quit();
}
}
当我点击按钮时,它会像这样调用该方法
private void btnCheck_Click(object sender, EventArgs e)
{
exportDataGridToExcel(dataDaily);
}
但是它在这行代码中抛出异常Microsoft.Office.Interop.Excel.Application Excel = new Microsoft.Office.Interop.Excel.Application();
这个异常:
“'System.Runtime.InteropServices.COMException' 类型的未处理异常发生在 mscorlib.dll
其他信息:为 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件检索 COM class 工厂失败,原因如下:80040154 Class 未注册(异常来自HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))。”
确保您为计算机上安装的 excel 版本引用了正确的互操作 dll。
在您的参考资料中,您会看到 excel 的版本。您需要确保在加载 DLL 的机器上安装了那个版本的 excel。
我想将 datagridview 内容导出到 excel,但它抛出异常。 我有一个方法
private void exportDataGridToExcel(DataGridView grd)
{
if (saveFileToExcel.ShowDialog() != DialogResult.Cancel)
{
Microsoft.Office.Interop.Excel.Application Excel = new Microsoft.Office.Interop.Excel.Application();
Workbook wb;
Worksheet ws;
wb = Excel.Workbooks.Add();
ws = (Worksheet)wb.Worksheets.get_Item(1);
for (int i = 0; i < grd.Columns.Count + 1; i++)
{
ws.Cells[1, i] = grd.Columns[i - 1].HeaderText;
}
for (int i = 0; i <= grd.Rows.Count; i++)
{
for (int j = 0; j <= grd.Columns.Count; j++)
{
ws.Cells[i + 1, j + 1] = grd.Rows[i - 1].Cells[j].Value.ToString();
}
}
wb.SaveAs(saveFileToExcel.FileName, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal);
wb.Close(ws);
Excel.Quit();
}
}
当我点击按钮时,它会像这样调用该方法
private void btnCheck_Click(object sender, EventArgs e)
{
exportDataGridToExcel(dataDaily);
}
但是它在这行代码中抛出异常Microsoft.Office.Interop.Excel.Application Excel = new Microsoft.Office.Interop.Excel.Application();
这个异常:
“'System.Runtime.InteropServices.COMException' 类型的未处理异常发生在 mscorlib.dll
其他信息:为 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件检索 COM class 工厂失败,原因如下:80040154 Class 未注册(异常来自HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))。”
在您的参考资料中,您会看到 excel 的版本。您需要确保在加载 DLL 的机器上安装了那个版本的 excel。