C#将datatable中数据导出到excel

using Excel = Microsoft.Office.Interop.Excel;//添加 Microsoft.Office.Interop.Excel.dll 引用

class ExcelManager
{
public delegate void ProgressBarEventHandler(int max, int value);//导出进度条所需最大值与进度值
public event ProgressBarEventHandler ProgressBarEvent;

public delegate void ProgressBarOKEventHandler(int sum);//导出记录行数
public event ProgressBarOKEventHandler ProgressBarOKEvent;

public void ExportToExcel(System.Data.DataTable dt,string fileName)
{
if (dt == null || dt.Rows.Count == 0) return;
Excel.Application xlApp = new Excel.Application();
if (xlApp == null)
{
return;
}
Excel.Workbook book = xlApp.Workbooks.Add(true);
Excel.Worksheet sheet = (Excel.Worksheet)book.Worksheets[1];
Excel.Range range1 = null;
Excel.Range range2 = null;
Excel.Range range3 = null;
int rowsCount = dt.Rows.Count;
int columnsCount=dt.Columns.Count;
object[] arrHeader=new object[columnsCount];
for (int i = 0; i < columnsCount; i++)
{
arrHeader[i] = dt.Columns[i].ColumnName;
}
range1 = sheet.Range[sheet.Cells[1, 1], sheet.Cells[1, columnsCount]];
range1.Value2 = arrHeader;
range1.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
range1.VerticalAlignment = Excel.XlVAlign.xlVAlignCenter;
range1.Borders.LineStyle = Excel.XlLineStyle.xlContinuous;
range1.Interior.ColorIndex = 15;
range1.Font.Bold = true;

object[,] arrBody = new object[rowsCount, columnsCount];
for (int i = 0; i < rowsCount; i++)
{
for (int j = 0; j < columnsCount; j++)
{
arrBody[i, j] = dt.Rows[i][j].ToString();
}
if (ProgressBarEvent != null) ProgressBarEvent(rowsCount,i+1);
}
range2 = sheet.Range[sheet.Cells[2, 1], sheet.Cells[rowsCount+1, columnsCount]];
range2.Value2 = arrBody;
range2.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
range2.VerticalAlignment = Excel.XlVAlign.xlVAlignCenter;
range2.Borders.LineStyle = Excel.XlLineStyle.xlContinuous;
range3 = sheet.Range[sheet.Cells[1, 3], sheet.Cells[rowsCount + 1, 3]];
range3.NumberFormat = @"yyyy/MM/dd HH:mm:ss";
book.SaveAs(fileName);
//xlApp.Visible = true;
book.Close();
xlApp.Quit();
GC.Collect();
if (ProgressBarOKEvent != null) ProgressBarOKEvent(rowsCount);
}
}

时间: 2024-08-24 22:51:37

C#将datatable中数据导出到excel的相关文章

将datagrid中数据导出到excel中 -------&lt;&lt;工作日志2014-6-6&gt;&gt;

1.下载log4j jar包,放入lib目录, 导入项目中   下载地址 http://logging.apache.org/ 2.创建log4j.properties 文件  目录 Src  下面是一个 log4j.properties的例子(注:来源于网上,非本人所写) ################################################################################ # 其语法:log4j.rootLogger = [ leve

C#dataset中数据导出到excel

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Data;using System.Reflection;using Microsoft.Office;//using Excel = Microsoft.Office.Interop.Excel;using

Python-将数据表中数据导出到excel

''' 需求:写一个函数,随便输入一个表名,把这个表里面所有的数据,导出到excel里面 思路: 1.'select * from %s' ,查出这个表所有的数据 2.再把所有的数据写到excel xlwt ''' import pymysql,hashlib,xlwt def op_mysql(sql:str): mysql_info = { 'host': 'XXX.XXX.XXX.XXX', 'port': XXXX, 'password': 'XXXX', 'user': 'XXXX',

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了. 经过对比第一种方法的效率没有第二种方法的效率高,而且

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

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

机房收费系统之vb中的MSFlexGrid控件中的数据导出为Excel的步骤

MSFlexGrid控件中的数据导出为Excel表格的方法有很多,我觉得它们都大同小异,总起来说就是vb先调用Excel,然后再将数据导入进去.在数据导出的过程中,我的收获如下,下面是我把MSFlexGrid控件的数据导出到Excel中的步骤. 1 首先确保 在工程中引用Microsoft Excel 14.0 Object Library   和  Microsoft ActiveX Data Objects 2.6 Libray 代码部分, <span style="font-size

支持将数据导出到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

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

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