使用C#,NPOI和XSSF工作簿计算.xlsx工作簿工作表的最简单方法是什么?

时间:2019-04-15 13:06:11

标签: c# apache npoi xssf

我正在尝试计算工作簿中的工作表数。该工作簿是使用NPOI创建的,似乎没有一种方法可以使用C#版本的NPOI来计算纸张数量吗?

解释和展示这是一件非常棘手的事情……但是我会尝试一下。

我要做的是将现有的excel文件作为统计模板。这个现有的excel文件可以具有不同数量的模板,我需要能够对这些模板进行计数,以了解将新工作表放置在何处并编辑其名称。

数据发送者只需选择应使用哪些数据填充哪个模板工作表,然后在插入所有数据后从工作簿中删除模板工作表。

我尝试过的事情:

我已阅读文档并搜索了信息,并尝试了以下方法:

这种方法的问题:NPOI的C#版本似乎没有getNumberOfSheets。

由于工作表和行的功能太不同,因此无法真正重新创建适用于工作表的代码。

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);
    }
}

1 个答案:

答案 0 :(得分:0)

您可以从NumberOfSheets类的XSSFWorkbook属性中获取页数。