WPF 导出EXCEL 方法

原创 2010年06月01日 11:20:00

是用WPF将数据导出成EXCEL其实和其他.NET应用是相通的,ASP.NET也好WINFORM也好,都是用相同的方法实现,唯一不同的是ASP.NET中可能会存在用户权限的问题,毕竟ASP.NET的执行用户是IIS指定的用户而不是默认的系统用户。

 

具体实现方法如下,代码中使用完整的名称空间,便于理解

 

第一步,不许引用Excel的程序集,不同于网上其他文章,我直接引用了.NET里的Microsoft.Office.interop.Excel ,而不是在Com里引用Microsoft Excel ,安装好VS08或.NET框架包以后 .NET本身就有这个程序集,不用去引用系统中安装的OFFICE的程序集,当然两种引用都是相同效果的。

 

然后就可以直接编写代码了

 

 

            DataOperation dataop = new DataOperation();

 

            DataView dv = dataop.OpertaionsGet(); //获得一个dataview,这是我的程序里的方法,这里可以随便获得任何一个dataview或者其他数据集合sheet

 

            dataop.Clear();

 

 

            Microsoft.Office.Interop.Excel.ApplicationClass ac = new Microsoft.Office.Interop.Excel.ApplicationClass();

           

            Microsoft.Office.Interop.Excel.Workbook wb ; //这里千万不能使用 new 来实例对象,不然会异常

 

            Microsoft.Office.Interop.Excel.Worksheet ws ;

 

 

 

 

            wb = ac.Workbooks.Add(System.Reflection.Missing.Value);  //创建工作簿(WorkBook:即Excel文件主体本身)

            ws = (Microsoft.Office.Interop.Excel.Worksheet)wb.Worksheets.Add(System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value);        //创建工作表(Worksheet:工作表,即Excel里的子表sheet)

 

            //设置表名

            ws.Name = "TestXlS";

 

            //将数据导入到工作表的单元格

            for (int i = 0; i < dv.Count; i++)

            {

                for(int j=0;j<dv.Table.Columns.Count;j++)

                ws.Cells[i+1,j+1]= dv[i][j].ToString();

            }

 

            //保存到文件

            wb.SaveAs("D://aa1.xls", System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value);

 

            //关闭

            wb.Close(System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value);

 

 

其实很简单,如同将一个数据表格导入到另一个数据表格一样,只需要注意Excel的方法中的参数。

 

本示例中,大部分参数都采用缺省,System.Reflection.Missing.Value,在保存方法中只有第1个参数必须是完整保存路径字符串和第7个参数是XlSaveAsAccessMode枚举。

 

还有一个必须要注意的地方,WorkSheet单元Cell的索引是从1开始的,不同于我们习惯的从0开始,因此在Cells二维数组中代码是ws.Cells[i+1,j+1]这个样的。

 

最后,关闭工作表 ,这个容易理解,否者,保存的文件将一直被Excel进程占用。

 

另外有时候数字文本会被用科学计数法显示,格式化数字为文本的方法是

ws.Cells.NumberFormat = "@";

版权声明:本文为博主原创文章,未经博主允许不得转载. dawngrp.com https://blog.csdn.net/banmuhuangci/article/details/5638913

在jsp中发送email

一、我们可以通过任何支持sun规范中的sun.net.smtp包的JSP引擎(如JSWDK)发送mail。 (警告:使用内置的internal Sun规范包,这将影响到你的jsp程序的可移植性。) 以...
  • weqa
  • weqa
  • 2000-09-02 22:42:00
  • 570

WPF之导入导出Excel

http://blog.csdn.net/sanjiawan/article/details/6818921 大凡微软的导入导出无论是asp.net、winform、抑或是wpf导出的方法大...
  • lanshengsheng2012
  • lanshengsheng2012
  • 2013-09-06 16:18:58
  • 9489

WPF中对Excel文件导入导出操作

  • 2014年09月11日 10:51
  • 296KB
  • 下载

WPF对Excel文件的导入导出

http://blog.csdn.net/sonicrang/article/details/7898953  一、引言         对Excel文件的导入和导出是软件一个常用模块,本文主...
  • swarb
  • swarb
  • 2012-12-21 16:39:52
  • 5412

<em>WPF中</em>对<em>Excel</em>文件的<em>导入导出</em>

2014-09-22 上传大小:91KB <em>WPFExcel</em> 实现一个界面。界面上具有两个两个按钮,一个“<em>导入</em>”,一个“<em>导出</em>”,界面上还有一个类似dataview的数据显示控件 ...
  • 2018年04月05日 00:00

【WPF】将DataGrid内容导出到Excel

引言在完成将DataGrid的内容导出到Excel的时候,参考了一个印度小伙的文章http://www.codeproject.com/Articles/120480/Export-to-Excel-...
  • u013201439
  • u013201439
  • 2016-04-06 17:43:29
  • 3998

<em>wpf中excel</em>的<em>导入导出</em>

举报人: 被举报人: xiaoxiao3456 举报的资源分: 3 *类型: *详细原因: 取  消 提  交 <em>wpf中excel</em>的<em>导入导出</em> 5 积分 立即下载 ...
  • 2018年03月28日 00:00

WPF之导入导出Excel

大凡微软的导入导出无论是asp.net、winform、抑或是wpf导出的方法大致相同。无非就是实例化Excel类,创建工作簿,创建工作表,然后保存或提取数据。以至于如此简便的操作感觉都变得理所当然了...
  • sanjiawan
  • sanjiawan
  • 2011-09-25 12:07:08
  • 14320

WPF导入Excel (一)

OLEDB Excel导入
  • qq_31971935
  • qq_31971935
  • 2015-11-20 15:03:59
  • 1024

C# WPF 读写Excel文件

finally可以没有,也可以只有一个。无论有没有发生异常,它总会在这个异常处理结构的最后运行。即使你在try块内用return返回了,在返回前,finally总是要执行,这以便让你有机会能够在异常处...
  • oHanTanYanYing
  • oHanTanYanYing
  • 2015-11-10 16:34:33
  • 5426
收藏助手
不良信息举报
您举报文章:WPF 导出EXCEL 方法
举报原因:
原因补充:

(最多只允许输入30个字)