1.支持导出多个sheet文件

  /// <summary>
/// 导出到Excel并下载(html)
/// </summary>
/// <param name="tablels">需要导出的Excel表集合</param>
public static void ToExcel(List<DataTable> tablels, string fileName = "")
{ if (fileName == "")
{
fileName = "数据导出汇总-" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".xls"; // 文件名称
}
string urlPath = "UpFiles/ExcelFiles/" + fileName; // 文件下载的URL地址,供给前台下载 string filePath = HttpContext.Current.Server.MapPath("\\" + urlPath); // 文件路径 string directoryName = Path.GetDirectoryName(filePath); if (!Directory.Exists(directoryName))
{
Directory.CreateDirectory(directoryName);
}
IWorkbook workBook = new HSSFWorkbook(); foreach (DataTable table in tablels)
{ string sheetName = table.TableName;
FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
sheetName = string.IsNullOrEmpty(sheetName) ? "sheet1" : sheetName;
ISheet sheet = workBook.CreateSheet(sheetName); //处理表格标题
IRow row = sheet.CreateRow();
row.CreateCell().SetCellValue(sheetName);
sheet.AddMergedRegion(new CellRangeAddress(, , , table.Columns.Count - ));
row.Height = ; ICellStyle cellStyle = workBook.CreateCellStyle();
IFont font = workBook.CreateFont();
font.FontName = "微软雅黑";
font.FontHeightInPoints = ;
cellStyle.SetFont(font);
cellStyle.VerticalAlignment = VerticalAlignment.Center;
cellStyle.Alignment = HorizontalAlignment.Center;
row.Cells[].CellStyle = cellStyle; //处理表格列头
row = sheet.CreateRow();
for (int i = ; i < table.Columns.Count; i++)
{
row.CreateCell(i).SetCellValue(table.Columns[i].ColumnName);
row.Height = ;
sheet.AutoSizeColumn(i);
} //处理数据内容
for (int i = ; i < table.Rows.Count; i++)
{
row = sheet.CreateRow( + i);
row.Height = ;
for (int j = ; j < table.Columns.Count; j++)
{
row.CreateCell(j).SetCellValue(table.Rows[i][j].ToString());
sheet.SetColumnWidth(j, * );
}
}
//写入数据流
workBook.Write(fs);
fs.Flush();
fs.Close();
}
// 3.进行Excel转换操作,并返回转换的文件下载链接
System.Web.Script.Serialization.JavaScriptSerializer js = new System.Web.Script.Serialization.JavaScriptSerializer();
HttpContext.Current.Response.ContentType = "text/plain";
HttpContext.Current.Response.Write(js.Serialize(urlPath)); // 返回Json格式的内容
}

2.只支持一个sheet文件

  /// <summary>
/// 导出到Excel并下载(html)
/// </summary>
/// <param name="table">数据源</param>
/// <param name="title">标题</param>
/// <param name="sheetName">sheetName名称</param>
/// <param name="fileName">路径</param>
public static void ToExcel(DataTable table, string title, string sheetName, string fileName = "")
{
if (fileName == "")
{
fileName = sheetName + "-" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".xls"; // 文件名称
}
string urlPath = "UpFiles/ExcelFiles/" + fileName; // 文件下载的URL地址,供给前台下载 string filePath = HttpContext.Current.Server.MapPath("\\" + urlPath); // 文件路径 string directoryName = Path.GetDirectoryName(filePath); if (!Directory.Exists(directoryName))
{
Directory.CreateDirectory(directoryName);
} FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
IWorkbook workBook = new HSSFWorkbook();
sheetName = string.IsNullOrEmpty(sheetName) ? "sheet1" : sheetName;
ISheet sheet = workBook.CreateSheet(sheetName); //处理表格标题
IRow row = sheet.CreateRow();
row.CreateCell().SetCellValue(title);
sheet.AddMergedRegion(new CellRangeAddress(, , , table.Columns.Count - ));
row.Height = ; ICellStyle cellStyle = workBook.CreateCellStyle();
IFont font = workBook.CreateFont();
font.FontName = "微软雅黑";
font.FontHeightInPoints = ;
cellStyle.SetFont(font);
cellStyle.VerticalAlignment = VerticalAlignment.Center;
cellStyle.Alignment = HorizontalAlignment.Center;
row.Cells[].CellStyle = cellStyle; //处理表格列头
row = sheet.CreateRow();
for (int i = ; i < table.Columns.Count; i++)
{
row.CreateCell(i).SetCellValue(table.Columns[i].ColumnName);
row.Height = ;
sheet.AutoSizeColumn(i);
} //处理数据内容
for (int i = ; i < table.Rows.Count; i++)
{
row = sheet.CreateRow( + i);
row.Height = ;
for (int j = ; j < table.Columns.Count; j++)
{
row.CreateCell(j).SetCellValue(table.Rows[i][j].ToString());
sheet.SetColumnWidth(j, * );
}
} //写入数据流
workBook.Write(fs);
fs.Flush();
fs.Close(); // 3.进行Excel转换操作,并返回转换的文件下载链接
System.Web.Script.Serialization.JavaScriptSerializer js = new System.Web.Script.Serialization.JavaScriptSerializer();
HttpContext.Current.Response.ContentType = "text/plain";
HttpContext.Current.Response.Write(js.Serialize(urlPath)); // 返回Json格式的内容
}

最新文章

  1. bzoj1057: [ZJOI2007]棋盘制作--最大子矩阵
  2. Oracle 12c In Memory Option初探
  3. Selenium简单介绍
  4. starUML使用教程
  5. CSS简写指南
  6. Netty4.x分析(转)
  7. Go 终极指南:编写一个 Go 工具
  8. P9架构师讲解从单机至亿级流量大型网站系统架构的演进过程
  9. Linux 僵尸进程的筛选和查杀
  10. 获取AFP共享的文件夹及其权限
  11. FI配置步骤清单
  12. Openwrt TTL线刷
  13. [ASP.NET]NTKO插件使用常见问题
  14. python 使用qqwry.dat获取ip物理地址:速度快
  15. Spring 常用的注解
  16. ie6的display:inline-block实现
  17. 网站服务器压力Web性能测试(1):Apache Bench:Apache自带服务器压力测试工具
  18. ubuntu 10.04打开错误
  19. TarjanLCA学习笔记
  20. 3、java内存模型特点

热门文章

  1. 【bzoj4296】再见Xor
  2. 733. Flood Fill 简单型染色问题
  3. Python学习笔记_我的参考网址
  4. 4、MemorySubSystem
  5. 循环删除DataTable.Row中的多行问题
  6. 过渡函数transition-timing-function
  7. javascript总结5:js常见的数据类型
  8. css总结2:Flex 布局教程:Flex 语法(转)
  9. 第02章-装配Bean
  10. UIView的alpha、hidden和opaque属性之间的关系和区别[转]