后台数据导出为Excel
数据导出的方法如下:
一、下载office的类库:microsoft.office.interop.excel.zip
根据电脑安装的office版本选择引入相应的类库,office2007选择12.0的版本,office2010选择14的版本
二、设置该类库的嵌入互操作类型属性为false,如图
三、调用该方法实现数据的导出
主要代码如下:
- public static bool ExportExcel(System.Data.DataTable dt, string path)
- {
- bool succeed = false;
- if (dt != null)
- {
- Microsoft.Office.Interop.Excel.Application xlApp = null;
- try
- {
- xlApp = new Microsoft.Office.Interop.Excel.ApplicationClass();
- }
- catch (Exception ex)
- {
- throw ex;
- }
- if (xlApp != null)
- {
- try
- {
- Microsoft.Office.Interop.Excel.Workbook xlBook = xlApp.Workbooks.Add(true);
- object oMissing = System.Reflection.Missing.Value;
- Microsoft.Office.Interop.Excel.Worksheet xlSheet = null;
- xlSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlBook.Worksheets[];
- xlSheet.Name = dt.TableName;
- int rowIndex = ;
- int colIndex = ;
- int colCount = dt.Columns.Count;
- int rowCount = dt.Rows.Count;
- //列名的处理
- for (int i = ; i < colCount; i++)
- {
- xlSheet.Cells[rowIndex, colIndex] = dt.Columns[i].ColumnName;
- colIndex++;
- }
- //列名加粗显示
- //同时可以设置样式等
- xlSheet.get_Range(xlSheet.Cells[rowIndex, ], xlSheet.Cells[rowIndex, colCount]).Font.Bold = true;
- xlSheet.get_Range(xlSheet.Cells[rowIndex, ], xlSheet.Cells[rowCount + , colCount]).Font.Name = "Arial";
- xlSheet.get_Range(xlSheet.Cells[rowIndex, ], xlSheet.Cells[rowCount + , colCount]).Font.Size = "";
- rowIndex++;
- //数据内容逐行写入,当数据量大的时候建议采用异步回调方法;
- for (int i = ; i < rowCount; i++)
- {
- colIndex = ;
- for (int j = ; j < colCount; j++)
- {
- xlSheet.Cells[rowIndex, colIndex] = dt.Rows[i][j].ToString();
- colIndex++;
- }
- rowIndex++;
- }
- xlSheet.Cells.EntireColumn.AutoFit();
- xlApp.DisplayAlerts = false;
- path = System.IO.Path.GetFullPath(path);
- xlBook.SaveCopyAs(path);
- xlBook.Close(false, null, null);
- xlApp.Workbooks.Close();
- Marshal.ReleaseComObject(xlSheet);
- Marshal.ReleaseComObject(xlBook);
- xlBook = null;
- succeed = true;
- }
- catch (Exception ex)
- {
- succeed = false;
- }
- finally
- {
- xlApp.Quit();
- Marshal.ReleaseComObject(xlApp);
- int generation = System.GC.GetGeneration(xlApp);
- xlApp = null;
- System.GC.Collect(generation);
- }
- }
- }
- return succeed;
- }
office链接类库:http://files.cnblogs.com/files/weiweiboqi/microsoft.office.interop.excel.zip
后台数据导出为Excel的更多相关文章
- 将datagrid中数据导出到excel中 -------<<工作日志2014-6-6>>
前台datagrid数据绑定 #region 导出到excel中 /// <summary> /// 2014-6-6 /// </summary> / ...
- 学习笔记 DataGridView数据导出为Excel
DataGridView数据导出为Excel 怎样把WinForm下的“DGV”里的绑定数据库后的数据导出到Excel中. 比如:在窗体里有个一“DGV”,DataGridView1,绑定了数据源 ...
- 将C1Chart数据导出到Excel
大多数情况下,当我们说将图表导出到Excel时,意思是将Chart当成图片导出到Excel中.如果是这样,你可以参考帮助文档中保存和导出C1Chart章节. 不过,也有另一种情况,当你想把图表中的数据 ...
- vb.net-三种将datagridview数据导出为excel文件的函数
第一种方法较慢,但是数据格式都比较好,需要引用excel的 Microsoft.Office.Interop.Excel.dll office.dll #Region "导出excel函数 ...
- 数据导出至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; ...
- 数据导出到Excel中
自己修改后的一个数据导出到Excel的方法,粘出来与大家共享. 只需要将 System.Web.HttpContext.Current.Response.Charset = ...
- asp.net将数据导出到excel
本次应用datatable导出,若用gridview(假设gridview设为了分页显示)会出现只导出当前页的情况. protected void btnPrn_Click(object sender ...
- 机房收费系统——在VB中将MSHFlexGrid控件中的数据导出到Excel
机房收费系统中,好多查询的窗体都包含同一个功能:将数据库中查询到的数据显示在MSHFlexGrid控件中,然后再把MSHFlexGrid控件中的数据导出到Excel表格中. 虽然之前做过学生信息管理系 ...
- Qt中将QTableView中的数据导出为Excel文件
如果你在做一个报表类的程序,可能将内容导出为Excel文件是一项必须的功能.之前使用MFC的时候我就写过一个类,用于将grid中的数据导出为Excel文件.在使用了QtSql模块后,我很容易的将这个类 ...
随机推荐
- poj 2046 Gap(bfs+hash)
Description Let's play a card game called Gap. You have cards labeled with two-digit numbers. The fi ...
- Oracle insert update 时间处理
24小时表示方法:to_date(’ ::’,’yyyy-mm-dd hh24:mi:ss’) 12小时表示方法:to_date(’ ::’,’yyyy-mm-dd hh:mi:ss’) ','S75 ...
- Beyond Compare 忽略两个文件内容的顺序比较文件内容(xjl456852原创)
有时两个文件内容的顺序是不固定的,对比时需要忽略文件顺序进行对比. 可以这样设置: 点击菜单下面工具栏按钮: 点击Format旁的三角,选择Sorted,就会按文件的顺序排序比较.忽略了文件内容顺序的 ...
- C# 约瑟夫环算法
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- Eclipse UML插件AmaterasUML的配置及使用
AmaterasUML是个人觉得最好用的Eclipse UML插件,可以通过拖拽Java源文件,轻松生成类图结构,同时支持活动图.时序图和用例图.它的官方下载地址是:http://sourceforg ...
- C#调用VB6写的ActiveX Dll
搜索了很多资料,下载了Demo:http://download.csdn.net/detail/xieguoxian/2747484然后在同学电脑上测试才弄好...记录下 (一) 前期搜索资料: VB ...
- CodeSmith使用总结--读取一个表试试
我感觉CodeSmith对于我的最大用途是不用我手动创建每个表的Model.BLL和DAL了,那些繁琐的工作真的让我很无语. CodeSmith要读取数据库中的表就要先连接数据库. 新建一个数据库连接 ...
- Docker中的一些命令
可以交互的方式启动container $ sudo docker run -t -i ubuntu:14.04 /bin/bash 当这个Bash shell进程终止时,这个容器也停止了. docke ...
- AndroidAnnotations框架配置
如今Android Studio的普及,Android开发基本要舍弃Eclipse了,最近使用AndroidAnnotations 注解框架的时候,找了些资料慢慢整出来了,在这给大家简单分享一下: 首 ...
- MessageDigest 类
MessageDigest 类 MessageDigest 类是一个引擎类,它是为了提供诸如 SHA1 或 MD5 等密码上安全的报文摘要功能而设计的.密码上安全的报文摘要可接受任意大小的输入( ...