码迷,mamicode.com
首页 > 其他好文 > 详细

导出NPOI

时间:2015-06-24 12:30:46      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:

 

table:表

dataName:文件名

listNme:列名

public void RenderToExcel(DataTable table, string dataName, string[] listNme)
{
var countL = listNme.Length;
HSSFWorkbook workbook = new HSSFWorkbook();
ISheet sheet = workbook.CreateSheet(dataName);//创建工作表
sheet.SetColumnWidth(1, 40 * 256);
sheet.SetColumnWidth(2, 30 * 256);
sheet.SetColumnWidth(3, 30 * 256);
sheet.SetColumnWidth(4, 20 * 256);
sheet.SetColumnWidth(5, 20 * 256);

#region 标题
IRow row = sheet.CreateRow(0);//在工作表中添加一行
for (int i = 0; i < listNme.Length; i++)
{
ICell cell = row.CreateCell(i);//在行中添加一列
cell.SetCellValue(listNme[i]);//设置列的内容

}
#endregion

#region 填充数据
for (int i = 1; i <= table.Rows.Count; i++)//遍历DataTable行
{
DataRow dataRow = table.Rows[i - 1];
row = sheet.CreateRow(i);//在工作表中添加一行
var n = table.Columns.Count;
for (int j = 0; j < table.Columns.Count; j++)//遍历DataTable列
{

ICell cell = row.CreateCell(j);//在行中添加一列
if (countL < n)
{
if (j<5)
{
if (j >= 3)
{
cell.SetCellValue(dataRow[j + 1].ToString());//设置列的内容
}
else
{
cell.SetCellValue(dataRow[j].ToString());//设置列的内容
}
}

}
else
{
cell.SetCellValue(dataRow[j].ToString());//设置列的内容

}

}
}
#endregion

#region 输出到Excel
MemoryStream ms = new MemoryStream();
workbook.Write(ms);
Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}.xls", HttpUtility.UrlEncode(dataName + "_" + DateTime.Now.ToString("yyyy-MM-dd"), System.Text.Encoding.UTF8)));
Response.BinaryWrite(ms.ToArray());
Response.End();
//var file = new FileStream("C:\\Users\\Administrator\\Desktop\\" + dataName + ".xls", FileMode.Create);
//workbook.Write(file);
//file.Close();
workbook = null;
ms.Close();
ms.Dispose();
#endregion

}

导出NPOI

标签:

原文地址:http://www.cnblogs.com/xwchengc/p/4597226.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!