C#操作EXCEL |
发布时间: 2012/9/11 17:09:49 |
在网上查看了很多资料都没有一个确切的说法,后来自己整合MSDN的帮助文档写了一些操作EXCEL的代码,希望借此可以跟大家分享,与大家一起进步。 C#为EXCEL提供了OLE借口,方便我们进行数据的读写操作,安装的EXCEL版本至少为11.0以上的版本,因为我测试的环境就是11.0的,太过老旧的版本无疑会出现一些不兼容性的问题,太过高的版本则又会出现一些无法处理的异常信息,我们如果需要进行EXCEL的操作还需要引入一些文件。DLL. 代码如下: //启动EXCEL Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); //判断PC上面是否装有EXCEL if (xlApp == null) { MessageBox.Show(“EXCEL未能启动,请检查您的机器上是否装有EXCEL”); return; } //设置EXCEL为可见 xlApp.Visible = true; //增加一个工作表SHEET1 Workbook wb = xlApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet); Worksheet ws = (Worksheet)wb.Worksheets[1]; if (ws == null) { MessageBox.Show(“EXCEL未能启动,请检查您的机器上是否装有EXCEL”); } int z = 2;//因为是从第二行开始,所以z=2; int k = 0; for (int i = 0; i <= dataGridView1.RowCount - 1; i++) { ws.Cells[z, 1] = dataGridView1.Rows[i].Cells[k].Value; ws.Cells[z, 2] = dataGridView1.Rows[i].Cells[k + 1].Value; ws.Cells[z, 3] = dataGridView1.Rows[i].Cells[k + 2].Value; z = z + 1; } 这个是从dbgrid向EXCEL中写数据,我没有去用到第二层循环,为的是提高程序的运行速度,如果需要填写单元格的内容,直接可以这样了 ws.Cells[1, 1]=“默认的字段内容”. 如果大家有更好的写法不妨大家一起讨论一下。 本文出自:亿恩科技【www.enkj.com】 |