当前位置: 首页 > 知识库问答 >
问题:

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

尉迟鑫鹏
2023-03-14

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

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

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

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

我尝试过:

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

  • getNumberOfSheets-如何知道工作簿中的工作表数

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

  • 将找到的行计数器转换为工作表计数器-NPOI-获取excel行计数以检查是否为空

由于工作表和行的功能差异太大,因此无法重新创建用于工作表的代码

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个答案

桂玉石
2023-03-14

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

 类似资料:
  • 我有一段代码,目前正在写入一个

  • 我使用这段代码将工作簿中的每一张工作表复制到一个新的工作簿中,它工作得很好,但它颠倒了工作表的顺序,是否有任何办法阻止它这样做? 我正在复制所有的工作表,这样我就可以将它保存为不同的文件扩展名,这是我发现唯一有效的方法。

  • 这里的术语“工作簿”表示Microsoft Excel文件。 完成本章后,您将能够使用Java程序创建新的工作簿并打开现有的工作簿。 创建空白工作簿 以下简单程序用于创建空白Microsoft Excel工作簿。 import java.io.*; import org.apache.poi.xssf.usermodel.*; public class CreateWorkBook { pu

  • 所以在问这个之前,我搜索并发现了一些与我在这里想要做的相似的事情。 基本上我有工作簿AlphaMaster。这个工作簿是一个模板,我想用它来创建每周的新工作簿。 在本工作簿中,有名为“周一至周六”的工作表,以及带有相应日期的周一、周二等其他工作表。 我创建了一个在打开工作簿时加载的表单。我想要的是当我单击表单运行时,它将: > 将代码保存模板作为新工作簿运行 根据userform1的输入重命名工作

  • 我得到了这个错误: 工作簿已包含此名称的工作表 行应该检查工作簿是否已经包含此名称的工作表,但它不工作。我仍然有错误。 谢谢你的帮助!

  • 然后另一个问题是工作簿的名称都不同,所有300个。是否有一个宏可以复制我打开的工作簿,而不是每次都输入实际的名称?