后台数据导出为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模块后,我很容易的将这个类 ...
随机推荐
- eclipse中使用git提交代码到github
这里假设你已经拥有了github账号,建好了带提交的eclipse工程,进行了本地git的提交.本文只介绍在eclipse通过git插件将代码push到github 1.登录github新建repos ...
- java遍历Hashmap/Hashtable的几种方法
一>java遍历Hashtabe: import java.util.Hashtable; import java.util.Set; public class HashTableTest { ...
- 使用MutationObserver对象封装一个监听DOM生成的函数
(function(win){ 'use strict'; var listeners = []; var doc = win.document; var MutationObserver = win ...
- 为iPhone6设计自适应布局(一)
译者的话:本文是自适应布局的巩固篇,所以对布局约束的添加操作步骤等没有详细的说明.如果看着吃力的话请先移步Swift自适应布局(Adaptive Layout)教程. Apple从iOS6加入了Aut ...
- getAttribute()与getParameter的区别
当两个Web组件之间为转发关系时,转发源会将要共享 request范围内的数据先用setAttribute将数据放入到HttpServletRequest对象中,然后转发目标通过 getParamet ...
- html与css的移动端与pc端需要注意的事项
一个移动端与pc端之间最主要的也就是尺寸问题,苹果与安卓的机型尺寸大小相差甚多,一个尺寸都会影响用户的体验.那么我们来了解一下一些常用的解决方法. 一般在网页中都会在头部有一些这样的代码 <me ...
- 自定义VS的ItemTemplates 实现任意文件结构
上一篇说到重写IHttpHandler实现前后端分离,这次说一下如何建立一个如下文件结构. VS建立webform时是根据模板来的.C#的模板目录如下: F:\Program Files (x86)\ ...
- 表格table常见的边框设置和初步的立体效果
做网页时经常会遇到表格,常见的表格如下: <style type="text/css"> .tbtest0 { width:500px; height:200px; b ...
- Oracle instr 及 like
原文: http://www.cnblogs.com/crazyjava/archive/2012/10/31/2748202.html instr(string1,string2[,start_po ...
- js中的两个数字a,b求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。一共b个数字相加,例如用户输入2,5 s=2+22+222+2222+22222
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...