在C#的WFP中使用NPOI对Excel进行操作效率很不错,但在开始过程中也有一些操作不清楚的地方,这里写出来供参考交流。
问题描述:
读入excel作为模板,该模板中有多个sheet表样式,根据选择的sheet后,移除未选择的sheet,而后写入另存为excel。
解决的办法:
1.使用RemoveSheetAt
该函数的作用是Remove指定的sheet。通过循环可以Remove。
wb.SetSheetOrder((sheetIndex + 1).ToString(), 0);
wb.SetSheetName(0, "exportSheet1");
for (;; )
{
if (wb.NumberOfSheets == 1)
break;
else
{
wb.RemoveSheetAt(1);
}
}
这样可以解决,但是在不同的office环境中可能会提示名称冲突的问题。
尝试在RemoveSheetAt之前使用wb.RemovePrintArea(1);导致左右的格式无效。
2.使用SetSheetHidden隐藏为选择的sheet,达到效果。
sheet = wb.GetSheetAt(sheetIndex);
for (int i = 0; i < wb.NumberOfSheets; i++)
{
if (sheetIndex != i)
{
wb.SetSheetHidden(i, 1);
}
}
wb.SetSheetOrder((sheetIndex + 1).ToString(), 0);
wb.SetSheetName(0, "exportSheet1");
wb.SetActiveSheet(0);//这个很重要
wb.SetSelectedTab(0);
参考代码下载地址在这里。