npoi
npoi copied to clipboard
sheet.CopyTo may partially corrupt the xls file
使用 sheet.CopyTo 会造成,生成xls文件部分报损坏,或者文件无法在受保护的视图中打开该文件。 环境: Vs 2022 C# Excel 2016
通过以下代码,会出现生成的文件,部分损坏,或者文件无法在受保护的视图中打开。但更换一个Excel文件,又可以正常生成,这是什么原因造成?
private void DoCopySheet()
{
string tplFullname = @"template.xls";
System.IO.FileStream tplFileStream = new System.IO.FileStream(tplFullname, System.IO.FileMode.Open, System.IO.FileAccess.Read);
IWorkbook workbook = new HSSFWorkbook(tplFileStream);
tplFileStream.Close();
ISheet sheet = workbook.GetSheetAt(0);
workbook.SetSheetName(0, "FirstSheet");
for (int i = 1; i <= 2; i++)
{
string newSheetName = i.ToString();
sheet.CopyTo(workbook, newSheetName, true, true);
}
workbook.SetSheetName(0, 0.ToString());
for (int i = 0; i <= workbook.NumberOfSheets - 1; i++)
workbook.GetSheetAt(i).IsSelected = false;
// 设置当前激活的工作表
workbook.GetSheetAt(0).IsSelected = true;
workbook.SetActiveSheet(0);
// 保存文件
var file = new System.IO.FileStream("CopySheet.xls", System.IO.FileMode.Create);
workbook.Write(file);
file.Close();
}
Which version of NPOI are you using?
Version 2.5.6.0