【发布时间】:2019-04-15 13:06:11
【问题描述】:
我正在尝试计算工作簿中的工作表数量。工作簿是使用 NPOI 创建的,似乎没有办法使用 C# 版本的 NPOI 来计算工作表的数量?
这是一件很难解释和展示的事情......但我会尝试一下。
我想要做的是将现有的 excel 文件作为统计模板。这个现有的 excel 文件可以有不同数量的模板,我需要能够计算这些模板以知道在哪里放置我的新工作表并编辑它们的名称。
数据的发送者只需要选择哪个模板表应该填写哪些数据,然后我会在插入所有数据后从工作簿中删除模板表。
我尝试过的:
我已阅读文档并搜索信息并尝试了以下方法:
- getNumberOfSheets - How to know number of sheets in a workbook?
这种方法的问题:C# 版本的 NPOI 似乎没有 getNumberOfSheets。
- 将找到的行计数器转换为工作表计数器 - NPOI - Get excel row count to check if it is empty
由于工作表和行的功能差异太大,无法真正重新创建代码以适用于工作表。
var sheetIndex = 0;
foreach (var sheet in requestBody.Sheets)
{
if (sheet.TemplateNumber == "")
{
sheetTemplate = templateWorkbook.CreateSheet(sheet.Name);
}
else
{
sheetTemplate = templateWorkbook.CloneSheet(Convert.ToInt32(sheet.SheetTemplate));
if (!templates.Contains(Convert.ToInt32(sheet.SheetTemplate)))
{
templates.Add(Convert.ToInt32(sheet.SheetTemplate));
}
// Do math's to make sure we add the name to the newly created sheet further down the code (I need to actual index here)
}
// Insert statistics
//After inserting statistics:
workingCopy.SetSheetName(sheetIndex, sheet.Name);
foreach (var template in templates)
{
workingCopy.RemoveSheetAt(template);
}
}
【问题讨论】: