【问题标题】:What is the easiest way to count .xlsx workbook sheets using c#, NPOI and an XSSF workbook?使用 c#、NPOI 和 XSSF 工作簿计算 .xlsx 工作簿工作表的最简单方法是什么?
【发布时间】:2019-04-15 13:06:11
【问题描述】:

我正在尝试计算工作簿中的工作表数量。工作簿是使用 NPOI 创建的,似乎没有办法使用 C# 版本的 NPOI 来计算工作表的数量?

这是一件很难解释和展示的事情......但我会尝试一下。

我想要做的是将现有的 excel 文件作为统计模板。这个现有的 excel 文件可以有不同数量的模板,我需要能够计算这些模板以知道在哪里放置我的新工作表并编辑它们的名称。

数据的发送者只需要选择哪个模板表应该填写哪些数据,然后我会在插入所有数据后从工作簿中删除模板表。

我尝试过的:

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

这种方法的问题:C# 版本的 NPOI 似乎没有 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);
    }
}

【问题讨论】:

    标签: c# apache npoi xssf


    【解决方案1】:

    您可以从XSSFWorkbook 类中的NumberOfSheets 属性中获取工作表数。

    【讨论】:

    • 来自帖子:“getNumberOfSheets - 如何知道工作簿中的工作表数量?这种方法的问题:NPOI 的 C# 版本似乎没有 getNumberOfSheets。”
    • 您尝试过 templateWorkbook.NumberOfSheets 吗?
    • 是的,我做到了。很遗憾。 :(
    • hmmm...您使用的是哪个版本的 NPOI?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 2018-01-04
    • 2011-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多