将datagridview内容导出为excel
我正在导出datagridview内容,但它会抛出exception。 我有一个方法
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(); } }
当我点击button时,它会调用像这样的方法
private void btnCheck_Click(object sender, EventArgs e) { exportDataGridToExcel(dataDaily); }
但它在这行代码中引发exceptionMicrosoft.Office.Interop.Excel.Application Excel = new Microsoft.Office.Interop.Excel.Application();
这个例外:
mscorlib.dll中发生“System.Runtime.InteropServices.COMException”types的未处理exception
其他信息:检索具有CLSID {00024500-0000-0000-C000-000000000046}的组件的COM类工厂失败,原因如下:80040154类未注册(exception来自HRESULT:0x80040154(REGDB_E_CLASSNOTREG))。
确保你的计算机上安装的excel版本的引用正确的interop dll。
在你的参考资料中,你会看到一个excel的版本。 您需要确保在加载DLL的机器上安装了该版本的Excel。
- 在Excel 2003中使用WCF?
- 如何使用asp.net mvc将数据导出到excel时将checkbox转换为gridview中的string值?
- 如何编写具有可变数量参数的Excel加载项函数(例如:MAX,MIN …)
- 如何使用openXML将两个工作表聚合到一个工作簿?
- “给定的ColumnMapping与源或目标中的任何列都不匹配”,而使用C#将Excel导入到SQL Server中时,
- 使用vba / excel / c将工作表分成多个文件的解决scheme#
- 在C#中将Excel转换为XML
- 将类属性映射到Excel / Spreadsheet列名的问题(使用LinqToExcel库时)
- C#excelclosures过程还剩下