C# 导出EXCEL报错
2013-11-18 14:38
274 查看
初步判断可能原因为
1。WPS相关冲突
2。系统更新冲突
部分客户端重装MICROSOFT OFFICE后可以正常使用。
部分客户端卸载WPS OFFICE后重装MICROSOFT OFFICE后可以正常使用。
仍有部分客户端以上方法都无效。
临时解决方案,采用第三方组件NPOI
public static void DataToExcelByNPOI(DataGridView dgv) { try { int rowCount = dgv.Rows.Count; int colCount = dgv.Columns.Count; //行数列数必须大于0 if (rowCount <= 0 || colCount <= 0) { MessageBox.Show("没有数据可供导出!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } NPOI.HSSF.UserModel.HSSFWorkbook workbook = new NPOI.HSSF.UserModel.HSSFWorkbook(); MemoryStream ms = new MemoryStream(); NPOI.SS.UserModel.ISheet sheet = workbook.CreateSheet("Sheet1"); try { //填入表头 NPOI.SS.UserModel.IRow dataHeadRow = sheet.CreateRow(0); for (int j = 0; j < colCount; j++) { if (dgv.Columns[j].Visible && dgv.Columns[j].HeaderText != "") { NPOI.SS.UserModel.ICell cell = dataHeadRow.CreateCell(j); cell.SetCellValue(dgv.Columns[j].HeaderText.ToString()); } } //填入明细 for (int i = 0; i < rowCount; i++) { NPOI.SS.UserModel.IRow dataRow = sheet.CreateRow(i+1); for (int j = 0; j < colCount; j++) { if (dgv.Columns[j].Visible && dgv.Rows[i].Cells[j].Value != null) { NPOI.SS.UserModel.ICell cell = dataRow.CreateCell(j); cell.SetCellValue(dgv.Rows[i].Cells[j].Value.ToString()); } } } workbook.Write(ms); SaveFileDialog sfd = new SaveFileDialog(); sfd.Filter = "Excel 97-2003工作薄(*.xls)|*.xls"; sfd.DefaultExt = ".xls"; sfd.RestoreDirectory = true; sfd.OverwritePrompt = true; sfd.Title = "保存文件"; if (DialogResult.OK != sfd.ShowDialog()) { return; } string strFileName = sfd.FileName; if (System.IO.File.Exists(strFileName)) { System.IO.File.Delete(strFileName); } FileStream file = new FileStream(strFileName, FileMode.Create); workbook.Write(file); file.Close(); MessageBox.Show("保存EXCE成功", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception) { throw; } finally { workbook = null; ms.Close(); ms.Dispose(); } } catch (Exception err) { MessageBox.Show(err.Message, "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }
NPOI的下载地址:NPOI
相关文章推荐
- C#导出Excel
- C#导出Excel源码
- c# 导出到Excel
- C#导出Excel总结
- C#创建数字证书并导出为pfx,并使用pfx进行非对称加解密
- C#TreeView读取Xml,TreeView导出到Xml
- 【C#】Excel导出合并行和列并动态加载行与列
- C#导出Excel总结
- c#调用excel报错(异常来自HRESULT:0X80010105(RPC_SERVERFAULT))
- c#导出bugfree3.0的数据到禅道
- C#导出Excel,并且设置Excel单元格格式,合并单元格.
- [Excel]C#操作Excel(导入导出)
- highcharts 导出图片 .net c#(二)
- C# 从XML/FDF/XFDF导入数据到PDF表单域以及将PDF表单域导出到XML/FDF/XFDF
- C#操作Excel导入导出
- ASP.NET(C#) DataSet数据导出到Excel
- C#中打日志导出日志到txt文本
- C# 使用 C# Aspose.Cells导出多个Sheet的Excel .net导出Excel C#导出Excel
- 解决C#导出excel异常来自 HRESULT:0x800A03EC的方法 .
- C# 将数据导出到Execl