string StrNow = DateTime.Now.ToString("yyyyMMddhhmmss");
string StrrdNum = rdNum.Next(1, 100000).ToString();
string Strp = 文件名+".xls";
//获取服务器内部的文件路径
string excelNewPath1 = System.Web.HttpContext.Current.Server.MapPath(".." + Strp);
#region NPOI
HSSFWorkbook hssfworkbookDown;
string strFileTemplete = System.Web.HttpContext.Current.Server.MapPath("../模板路径");
//获取模板文件,使用xssf或者hssf对象获取到模板文件进行插值
using (FileStream file = new FileStream(strFileTemplete, FileMode.Open, FileAccess.Read))
{
hssfworkbookDown = new HSSFWorkbook(file);
file.Close();
}
for (int i = 0; i < list.Count; i++)
{
string InventoryCode = list[i].InventoryCode;
DataTable dt = iInventoryManageHandler.selectallinformatian(InventoryCode);
HSSFSheet sheet = (HSSFSheet)hssfworkbookDown.GetSheet("想要获取的模板sheet页名称") as HSSFSheet;
//多次复制sheet页,进行插入操作,最后剩下最后一部分需要导出的文件时,插入到第一个sheet页当中
if (i != list.Count - 1)
{
sheet.CopySheet("想要给sheet页命名的名字");
HSSFSheet sheet1 = (HSSFSheet)hssfworkbookDown.GetSheet("上面命名的sheet页名称");
int intRow = 2;
int offset = 0;
foreach (DataRow dr in dt.Rows)
{
//插入行--否则找不到行
if (intRow >= 2)
{
//在所获得的sheet页中插入空行
insertRow(hssfworkbookDown, sheet1, intRow, 1);
offset++;
}
sheet1.GetRow(intRow).GetCell(0).SetCellValue(值);
intRow++;
}
//移除多余的空行
for (int c = 0; c < 2; c++)
{
sheet1.ShiftRows(开始行, 结束行, 删除行数);
}
}
else {
int intRow = 2;
int offset = 0;
foreach (DataRow dr in dt.Rows)
{
if (intRow >= 2)
{
insertRow(hssfworkbookDown, sheet, intRow, 1);
offset++;
}
sheet.GetRow(intRow).GetCell(0).SetCellValue(值);
intRow++;
}
//给sheet页命名,参数1:sheet页的序号,参数二:名称
hssfworkbookDown.SetSheetName(0, "名称");
for (int c = 0; c < 2; c++)
{
//参数一:开始行;参数二:结束行:参数3:删除行数(必须是负数)
sheet.ShiftRows(开始行, 结束行, 删除行数);
}
}
}
//创建文件,并将所有操作写入文件
FileStream files = new FileStream(excelNewPath1, FileMode.Create);
hssfworkbookDown.Write(files);
files.Close();