一.前言
最近做的项目中,需要实现如下功能:在Winform中,将DataGridView中的数据导出到某个Excel文件,以及读取某个存在的Excel文件的内容,并更新数据库。
为了实现这些功能,选择去用Com组件。
像下面这种表:
点击右上角的 导出Excel 按钮,出现弹窗选择存储路径:
取好文件名点确定,就能在该路径下保存一个xlsx文件,打开文件后效果如下:
可以看到,程序界面DataGridView中的内容完整地导入了xlsx文件,并且单元格合并、字符居中显示都已实现。
Excel表格的导入操作流程和上面相同,点击按钮选取路径下的一个文件。这里就不截图了。
二.解决思路
导出:
1 SaveFileDialog saveDialog = new SaveFileDialog(); 来创造弹窗,获取选择的文件名。
2 在右边资源管理器中,解决方案——引用——添加引用——程序集(扩展)中找到Microsoft.Office.Interop.Excel——确定
在命名空间中加上:using Excel = Microsoft.Office.Interop.Excel;
3 创建Excel对象,建立虚表
Application 相当于建立一个Excel程序,想象成电脑上打开了Excel程序
Workbooks 是application的一个属性,是当前EXCEL进程打开的所有工作簿数组,使用workbooks[1]、workbooks[2]可以访问他们。
Workbook 是类型,是工作簿,一个EXCEL文件(包含多个工作表)就是一个工作簿
worksheet