C#手记 DataSet 或DataTable导出至Excel
来源:互联网 发布:php建站免费空间 编辑:程序博客网 时间:2024/06/05 21:52
在网上搜得,自己修改了一下拿来用了,记录一下,方便其他朋友用
/*gridView1 是form中的控件,数据源就是myTable
*/
public void ExportDataToExcel( DataTable myTable)
{
try
{
Excel.Application xlApp = new Excel.ApplicationClass();
int rowIndex;
int colIndex;
rowIndex = 2;
colIndex = 0;
Excel.Workbook xlBook = xlApp.Workbooks.Add(true);
//之前用的DataGrid控件,如果有设定样式可以放开这里
/* if (gridView1.PrintStyles .Count > 0)
{
Excel.Range range = xlApp.get_Range(xlApp.Cells[1, 1], xlApp.Cells[1, grid.TableStyles[0].GridColumnStyles.Count]);
range.MergeCells = true;
// xlApp.ActiveCell.FormulaR1C1 = ReportTitle;
xlApp.ActiveCell.Font.Size = 18;
xlApp.ActiveCell.Font.Bold = true;
foreach (DataGridColumnStyle colu in grid.TableStyles[0].GridColumnStyles)
{
colIndex = colIndex + 1;
xlApp.Cells[2, colIndex] = colu.HeaderText;
}
int k = 0;
//得到的表所有行,赋值给单元格
for (int row = 0; row < myTable.Rows.Count; row++)
{
rowIndex = rowIndex + 1;
colIndex = 0;
for (int col = 0; col < grid.TableStyles[0].GridColumnStyles.Count; col++)
{
colIndex = colIndex + 1;
xlApp.Cells[rowIndex, colIndex] = myTable.Rows[row][col].ToString();
k++;
if (k >= 500)
{
Application.DoEvents(); //此举为了提高性能
k = 0; //归零
}
}
}
}
else
{*/
Excel.Range range = xlApp.get_Range(xlApp.Cells[1, 1], xlApp.Cells[1, myTable.Columns.Count]);
range.MergeCells = true;
// xlApp.ActiveCell.FormulaR1C1 = ReportTitle;
xlApp.ActiveCell.Font.Size = 18;
xlApp.ActiveCell.Font.Bold = true;
//将表中的栏位名称填到Excel的第一行
foreach (GridColumn Col in gridView1.Columns)
{
colIndex = colIndex + 1;
xlApp.Cells[2, colIndex] = Col.FieldName;
}
//得到的表所有行,赋值给单元格
for (int row = 0; row < myTable.Rows.Count; row++)
{
rowIndex = rowIndex + 1;
colIndex = 0;
for (int col = 0; col < myTable.Columns.Count; col++)
{
colIndex = colIndex + 1;
xlApp.Cells[rowIndex, colIndex] = myTable.Rows[row][col].ToString();
}
}
// }
xlApp.get_Range(xlApp.Cells[2, 1], xlApp.Cells[2, colIndex]).Font.Bold = true;
xlApp.get_Range(xlApp.Cells[2, 1], xlApp.Cells[rowIndex, colIndex]).Borders.LineStyle = 1;
xlApp.Cells.EntireColumn.AutoFit();
xlApp.Cells.VerticalAlignment = Excel.Constants.xlCenter;
xlApp.Cells.HorizontalAlignment = Excel.Constants.xlCenter;
xlApp.Visible = true;
}
catch (Exception e)
{
throw e;
}
}
}
效果大体如下:
导出:2千笔数据大约15秒导完:
---------------------------------
广告:俺的淘宝小店,赚点零花钱,请大家支持:http://lovehealthylife.taobao.com
- C#手记 DataSet 或DataTable导出至Excel
- C# DataTable导出Excel
- C#从datatable或dategridview导出到excel
- C#导出EXCEL(DataTable导出EXCEL)
- C#导出EXCEL(DataTable导出EXCEL)
- C#导出EXCEL(DataTable导出EXCEL)
- C#导出EXCEL(DataTable导出EXCEL)
- C#导出EXCEL(DataTable导出EXCEL)
- C# datatable 导出EXCEL 数据
- 整理的 C# DataSet导出至Excel文件(2)
- DataTable导出到word或excel
- ASP.NET C# IList/dataset导出excel
- datatable或dataset應用
- c# web datatable 导出到excel
- 彻底解决C#实现DataTable导出EXCEL表格
- C# web DataTable 导出成Excel
- C#将datatable导出到excel
- 【工具】C# DataTable导出到Excel
- 为什么1.0 - 0.7 != 0.3?????
- java java.util.ConcurrentModificationException 原因以及解决方案
- Java API——RMIIO入门教程(4)远程流传输示例之RMIIO客户端码
- linux iptables 用法
- Java通过new Date() 得到的时间与系统时间差N个小时的解决办法
- C#手记 DataSet 或DataTable导出至Excel
- Sharepoint2010-the scrollbar disappears in chrome and other browsers
- 【转】mysql忘记密码,如何重置密码
- 2个java泛型的小例子(技巧):
- IIC 简单操作介绍
- MFC MDI单窗口多标签实现
- MyEclipse8.5或者更低版本的序列号生成类
- windows下C++文件遍历
- 为 ASP.NET MVC 项目添加“模块”(module)