//导出
case "Export":
//每页导出的数据;
int sheet = 60000;
DataTable dtN;
dtN = DataAccess.GetTable("SELECT * FROM 表名");
if (dtN.Rows.Count > 0)
{
HSSFWorkbook workbook = ExcelHelperNPOI.GetTemplateWorkbook("DownLoad/导出模板.xls"); //获取模板导出的格式,此模板要求为.xls,
//sheet
HSSFSheet sheet2 = null;
//文件中数据表
int sheetCount = 0;
int rowcount = 0;
//循环将数据写入特定的位置
for (int i = 0; i < dtN.Rows.Count; i++)
{
//rowcount相当于sheet后的数字,前六万条为sheet1,第二个六万条++成2
rowcount++;
if (i % sheet == 0)
{
sheetCount++;
sheet2 = ((HSSFSheet)workbook.GetSheet("sht")).CopySheet("Sheet" + sheetCount.ToString());
//没输出六万条数据行数就归零,从下一个sheet的第二行开始输出
rowcount = 1;
}
//循环导出数据
sheet2.CreateRow(rowcount).CreateCell(0).SetCellValue(dtN.Rows[i]["StuName"].ToString());
sheet2.GetRow(rowcount).CreateCell(1).SetCellValue(dtN.Rows[i]["StuID"].ToString());
}
workbook.SetSheetHidden(workbook.GetSheetIndex("sht"), true);//隐藏sht模板
MemoryStream stream = new MemoryStream();
workbook.Write(stream);
NPOIHelper.RenderToBrowser(stream, HttpContext.Current, "***导出数据.xls");//输出文件
}
//无数据导出是提示
else
{
Alert("****数据导出");
}
ASP.NET导出数据超六万条,判断生成多sheet导出;
最新推荐文章于 2020-05-17 15:56:04 发布