后台数据导出为Excel

数据导出的方法如下:

一、下载office的类库:microsoft.office.interop.excel.zip

根据电脑安装的office版本选择引入相应的类库,office2007选择12.0的版本,office2010选择14的版本

二、设置该类库的嵌入互操作类型属性为false,如图

三、调用该方法实现数据的导出

主要代码如下:

 1 public static bool ExportExcel(System.Data.DataTable dt, string path)
 2 {
 3 bool succeed = false;
 4 if (dt != null)
 5 {
 6 Microsoft.Office.Interop.Excel.Application xlApp = null;
 7 try
 8 {
 9 xlApp = new Microsoft.Office.Interop.Excel.ApplicationClass();
10 }
11 catch (Exception ex)
12 {
13 throw ex;
14 }
15
16 if (xlApp != null)
17 {
18 try
19 {
20 Microsoft.Office.Interop.Excel.Workbook xlBook = xlApp.Workbooks.Add(true);
21 object oMissing = System.Reflection.Missing.Value;
22 Microsoft.Office.Interop.Excel.Worksheet xlSheet = null;
23
24 xlSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlBook.Worksheets[1];
25 xlSheet.Name = dt.TableName;
26
27 int rowIndex = 1;
28 int colIndex = 1;
29 int colCount = dt.Columns.Count;
30 int rowCount = dt.Rows.Count;
31
32 //列名的处理
33 for (int i = 0; i < colCount; i++)
34 {
35 xlSheet.Cells[rowIndex, colIndex] = dt.Columns[i].ColumnName;
36 colIndex++;
37 }
38 //列名加粗显示
39
40 //同时可以设置样式等
41 xlSheet.get_Range(xlSheet.Cells[rowIndex, 1], xlSheet.Cells[rowIndex, colCount]).Font.Bold = true;
42 xlSheet.get_Range(xlSheet.Cells[rowIndex, 1], xlSheet.Cells[rowCount + 1, colCount]).Font.Name = "Arial";
43 xlSheet.get_Range(xlSheet.Cells[rowIndex, 1], xlSheet.Cells[rowCount + 1, colCount]).Font.Size = "10";
44 rowIndex++;
45
46 //数据内容逐行写入,当数据量大的时候建议采用异步回调方法;
47
48 for (int i = 0; i < rowCount; i++)
49 {
50 colIndex = 1;
51 for (int j = 0; j < colCount; j++)
52 {
53 xlSheet.Cells[rowIndex, colIndex] = dt.Rows[i][j].ToString();
54 colIndex++;
55 }
56 rowIndex++;
57 }
58 xlSheet.Cells.EntireColumn.AutoFit();
59
60 xlApp.DisplayAlerts = false;
61 path = System.IO.Path.GetFullPath(path);
62 xlBook.SaveCopyAs(path);
63 xlBook.Close(false, null, null);
64 xlApp.Workbooks.Close();
65 Marshal.ReleaseComObject(xlSheet);
66 Marshal.ReleaseComObject(xlBook);
67 xlBook = null;
68 succeed = true;
69 }
70 catch (Exception ex)
71 {
72 succeed = false;
73 }
74 finally
75 {
76 xlApp.Quit();
77 Marshal.ReleaseComObject(xlApp);
78 int generation = System.GC.GetGeneration(xlApp);
79 xlApp = null;
80 System.GC.Collect(generation);
81 }
82 }
83 }
84 return succeed;
85 }

office链接类库:http://files.cnblogs.com/files/weiweiboqi/microsoft.office.interop.excel.zip

时间: 2024-10-08 08:53:27

后台数据导出为Excel的相关文章

支持将数据导出到Excel文档的时候设置单元格格式的.NET控件Spire.DataExport

Spire.DataExport for .NET是e-iceblue公司推出的一款数据导出类.NET控件.作为一款专业的数据导出控件,Spire.DataExport for .NET可以帮助开发人员轻松快速的从各种主流数据库中导出数据并存储于各种文件格式中.他支持从SQL Command, DataTable,ListView中导出数据并存储于MS Excel,MS Word, HTML, XML, PDF, MS Access, DBF, SQL Script, SYLK, DIF, CS

数据导出至Excel文件--好库编程网http://code1.okbase.net/codefile/SerializeHelper.cs_2012122018724_118.htm

using System; using System.IO; using System.Data; using System.Collections; using System.Data.OleDb; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; /// <summary> /// Excel操作类 /// </summary> /// Microsoft Excel 11.0 Obj

tablib把数据导出为Excel、JSON、CSV等格式的Py库(写入数据并导出exl)

#tablib把数据导出为Excel.JSON.CSV等格式的Py库 #python 3 import tablib #定义列标题 headers = ('1列', '2列', '3列', '4列', '5列') #需写入的数据,按照一行一行的输入 #元组数据的个数必须和列数一致 data = [('23','23','34','23','34'),('sadf','23','sdf','23','fsad')] #写入数据 mylist = tablib.Dataset(*data, head

Delphi 数据导出到Excel

好多办公软件特别是财务软件,都需要配备把数据导出到Excel,下面就来介绍两种数据导出方法 1.ADODB导出查询结果(此方法需要安装Excel) 2.二维表数据导出(根据Excel文件结构生成二进制文件流,不需要安装Excel) 3.如果涉及到复杂表头的(例如合并字段等),未做研究,下面也没介绍相关资料,请止步. 第一种,ADODB导出查询结果(此方法需要安装Excel) //uses DB, ADODB, ComObj, ComCtrls, excel2000, StdCtrls, adoi

Qt中将QTableView中的数据导出为Excel文件

如果你在做一个报表类的程序,可能将内容导出为Excel文件是一项必须的功能.之前使用MFC的时候我就写过一个类,用于将grid中的数据导出为Excel文件.在使用了QtSql模块后,我很容易的将这个类改写应用在Qt程序中.类的名字叫“ExportExcelObject”.使用起来很简单: [cpp] view plaincopy // 1. declare an object // – fileName Excel 文件路径 // – sheetName Excel 工作表(sheet)名称 /

将数据库的数据导出到excel中

这篇文章主要介绍了asp中把数据导出为excel的2种方法:分别用excel组件.文件组件实现,需要的朋友可以参考下.我们在做项目的时候经常要将数据库的数据导出到excel中,很多asp用户并不知道怎么写.这里总结了两种方法来导出excel,希望能帮到大家. 方法一:用excel组件 方法二:使用文件组件 可以看出,第一种方法是直接导出的是excel文件,而第二张方法是到处的是文本文件,只不过后缀名改成了xls. 然后看起来就是excel了. 经过对比第一种方法的效率没有第二种方法的效率高,而且

C#创建Excel文件并将数据导出到Excel文件

C#创建Excel文件,这里实际上是从资源中提取一个事先创建好的Excel文件,文件提取成功后,使用OleDb方法连接Excel,向Excel文件中写入数据. 创建解决方案 菜单>新建>项目>Windows窗体应用程序: 添加相关组件: 添加两个DataGridView,一个TextBox,两个按钮 ,如下图: 添加Excel资源: 先在文件夹中新建一个Excel文件,在Sheet1表的第一行设置列名: 双击"Resources.resx"文件打开资源文件视图: 添加

使用原生php将数据库数据导出到excel文件中

最近在工作中遇到一个需求,需要将数据库中的数据导出到excel文件中,并下载excel文件.因为以前没做过,所以就百度了一下, 网上说的大多是使用PHPExcel类来操作excel文件,这还要去下载这个类才能使用,而我只想使用原生的php,不想那么麻烦,好在 也有网友说到关于原生php生成excel文件的方法,其实很简单,下面把我结合网上资料自己实践的代码分享一下. 一般我们这种导数据的操作都是通过用户在网页页面上点击某个按钮触发相应js方法,然后请求php接口来实现的,所以主要有两种 方法来完

asp.net 将repeater上数据导出到excel

1,首先得到一个DataTable public DataTable GetTable(string sql) { SqlConnnection con=new SqlConnection(ConfigurationManager.ConnectionStrings["connectionstringname"].ConnectionString); con.Open(); SqlCommand cmd = new SqlCommand(sql, con); SqlDataAdapte