问题描述
循环调用ExportExcel这个方法时,相同路径,相同的DataTable结构的数据,导出到excel数据如何累加而不是覆盖publicboolExportExcel(DataTabledt,stringfilePath){try{using(FileStreamfile=newFileStream(filePath,FileMode.Append,FileAccess.Write)){IWorkbookwork=newHSSFWorkbook(,);ISheetseet=work.CreateSheet();for(inti=0;i<dt.Rows.Count;i++){IRowrow=seet.CreateRow(i);for(intj=0;j<dt.Columns.Count;j++){objecto=dt.Rows[i][j];ICellcell=row.CreateCell(j);//cell.SetCellValue(o.ToString());switch(o.GetType().Name.ToLower()){case"int32":case"int16":case"int64":case"byte":case"sbyte":cell.SetCellValue(Convert.ToInt64(o));break;case"string":cell.SetCellValue(o.ToString());break;default:cell.SetCellValue(o.ToString());break;}}}work.Write(file);}}catch(Exceptionex){throwex;}returntrue;}
解决方案
解决方案二:
记住或者判断之前的末尾,然后再这之后继续写
解决方案三:
代码没有,我想大概思路应该这样写入excel时,验证路径是否存在对应的excel,如果没有,新建excel写入。如果有,读出excel对象有多少行,(例如excel共有1000行)IWorkbookwork=newHSSFWorkbook(,);ISheetseet=work.CreateSheet();这里就不能new了。读出来之后写入从1001行开始IRowrow=seet.CreateRow(1001);