C# 快速填充excel 数据表导出excel
来源:互联网 发布:互站网源码 编辑:程序博客网 时间:2024/06/14 07:25
using System.Reflection;
using Excel = Microsoft.Office.Interop.Excel;
private string NumTochr(int Num)
{
int n = 64 + Num;
return "" + (Char)n;
}
private string NumToExeclRowStr(int Num)
{
int X, Y;
if (Num < 27)
{
return NumTochr(Num);
}
X = Num / 26;
Y = Num - X * 26;
return NumTochr(X) + NumTochr(Y);
}
/// <summary>
/// 将DataTable中的列名及数据导出到Excel表中
/// </summary>
/// <param name="tmpDataTable">要导出的DataTable</param>
/// <param name="strFileName">Excel的保存路径及名称</param>
public void DataTabletoExcelkk(System.Data.DataTable tmpDataTable, string strFileName)
{
if (tmpDataTable == null)
return;
int rowNum = tmpDataTable.Rows.Count;
int columnNum = tmpDataTable.Columns.Count;
int rowIndex = 1;
int columnIndex = 0;
Excel.Application xlApp = new Excel.ApplicationClass();
xlApp.DefaultFilePath = "";
xlApp.DisplayAlerts = true;
xlApp.SheetsInNewWorkbook = 1;
Excel.Workbook xlBook = xlApp.Workbooks.Add(true);
Excel.Worksheet ws = (Excel.Worksheet)xlBook.Worksheets[1];
int colnum = tmpDataTable.Columns.Count;
Excel.Range r = ws.get_Range("A1", NumToExeclRowStr(colnum) + "1");
object[] objHeader = new object[colnum];
//将DataTable的列名导入Excel表第一行
foreach (DataColumn dc in tmpDataTable.Columns)
{
objHeader[columnIndex] = dc.ColumnName;
columnIndex++;
}
r.Value2 = objHeader;
//将DataTable中的数据导入Excel中
for (int i = 0; i < rowNum; i++)
{
rowIndex++;
columnIndex = 0;
for (int j = 0; j < columnNum; j++)
{
objHeader[columnIndex] = tmpDataTable.Rows[i][j].ToString();
columnIndex++;
}
r = ws.get_Range("A" + (i + 2), NumToExeclRowStr(colnum) + (i + 2));
r.Value2 = objHeader;
}
r.EntireColumn.AutoFit();
xlBook.SaveCopyAs(strFileName);
}
调用---
private void button5_Click(object sender, EventArgs e)
{
//测试 闫磊 Email:Landgis@126.com,yanleigis@21cn.com 2008.1.5
DbClass = new Db_Class();
System.Diagnostics.Stopwatch MyWatch = new System.Diagnostics.Stopwatch();
MyWatch.Start();
DataTabletoExcelkk(DbClass.Db_CreateDataSet("select * from tab”).Tables[0], "C://pp.xls");
MyWatch.Stop();
MessageBox.Show(MyWatch.ElapsedMilliseconds.ToString() + "毫秒");
}
使用单元填充Cells[rowIndex, columnIndex]一般慢的多,rangle提高的columnNUM倍
- C# 快速填充excel 数据表导出excel
- C#导出数据表为Excel文件
- c#快速导出到Excel
- c#快速导出到Excel
- C#快速便捷导出Excel
- Excel 快速填充列
- c# 导出excel 填充数据 输出到浏览器
- 使用数组快速填充Excel
- 关于excel的快速填充
- C#读取Excel,导出Excel
- C#读取Excel,导出Excel
- C# 导出excel 生成excel
- dbgrideh快速导出excel
- winfrom 快速 导出excel
- C#导出EXCEL(DataTable导出EXCEL)
- C#导出EXCEL(DataTable导出EXCEL)
- C#导出EXCEL(DataTable导出EXCEL)
- C#导出EXCEL(DataTable导出EXCEL)
- YouTorrent - 全新的“实时”BT种子搜索站
- .ToString()、Convert.ToString、(string)、as的异同
- java 相对路径的一种解决方案
- (提醒)虬江路现在买二手的慢慢开始打心理战了,详文请看正文
- gdb资料
- C# 快速填充excel 数据表导出excel
- myeclipse中的一个hibernate实例
- CCP的简单的代码生成器v0.6
- cookie来记录密码
- C# 读取excel表
- Java 7.0中值得期待的新功能
- C#,由Treeview生成XML
- VS2005新建项目分类---VC++
- wget