NET导出Excel(一)

 最近做项目,需求要把数据导出Excel展示,所以就研究了一下这个东东,抽空的时候写了个通用的导入导出Excel的类 ,并写了几个小示例来和大家分享一下。里面有很多需要注意的地方,有需要的朋友请仔细看!

注意:Excel中所有的索引都是从1开始的。我们做的是WPF的项目,和普通的.net和Forms没什么区别,请大家放心使用!

不多说,看代码:

1 void ExportExcel()
2 {
3 var saveExcelAlert = new SaveFileDialog();
4 saveExcelAlert.Filter = "Microsoft Office Excel 工作簿(*.xls)|*.xls";
5 if (saveExcelAlert.ShowDialog() != System.Windows.Forms.DialogResult.OK) return;
6 GC.Collect();
7 Microsoft.Office.Interop.Excel.Application excel = new ApplicationClass();
8 _Workbook xBk = excel.Workbooks.Add(true); //添加一张工作表
9   _Worksheet xSt = (_Worksheet)xBk.ActiveSheet; //激活当前的工作表
10   for (int i = 1; i <= 5; i++)
11 {
12 for (int j = 1; j <= 5; j++)
13 {
14 excel.Cells[i, j] = (i + j).ToString(); //注意:Excel.Cells 的下标不能为0. 否则就会出现异常:HRESULT:0x800A03EC
15   xSt.get_Range(excel.Cells[i, j], excel.Cells[i, j]).HorizontalAlignment = XlVAlign.xlVAlignCenter;//设置标题格式为居中对齐
16   }
17 }
18 excel.Visible = true;
19 xBk.SaveCopyAs(saveExcelAlert.FileName);
20 xBk.Close(false, Type.Missing, Type.Missing);
21 excel.Quit();
22 System.Runtime.InteropServices.Marshal.ReleaseComObject(xBk); //释放工作表
23 System.Runtime.InteropServices.Marshal.ReleaseComObject(xSt);
24 System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
25 GC.Collect(); //强制结束进程
26 }
27 private void btnExportExcel_Click(object sender, RoutedEventArgs e)
28 {
29 ExportExcel();
30 }

效果如图:

白忘了在COM中添加Excel的dll文件哦!

一个完整的人生应该是宽恕、容忍、等待和爱!
原文地址:https://www.cnblogs.com/homezzm/p/1615866.html