从 excel 文件中仅获取特定的 sheet

Obtain only a specific sheet from the excel file

我只想从我的 excel 文件中获取某个 sheet,它有索引 2,称为“TimeLog Converted”。

问题只是:当我需要抓取它时,当我将它复制到一个新文件时,我也会得到所有其他 sheets。目标是我应该只有索引 2,称为“TimeLog Converted”。还有其他3个,但我基本上不需要使用或使用它们。

我很好地掌握了文件,但我也掌握了其他 sheet 我不想掌握的文件,

Worksheet worksheet = sourceWorkbook.Worksheets[2];
        Console.WriteLine(worksheet.Cells.MaxColumn);
        DataTable dataTable = worksheet.Cells.ExportDataTableAsString(0, 0, worksheet.Cells.MaxRow + 1, worksheet.Cells.MaxColumn + 1, true);
        Worksheet destsheet = sourceWorkbook.Worksheets[2];
        Console.WriteLine(destsheet);
        destsheet.Cells.ImportDataTable(dataTable, true, "A1");

Immediate window

并尝试在此处制作:

Worksheet worksheet = sourceWorkbook.Worksheets[ConstServices.WorksheetsName];
            Console.WriteLine(worksheet.Cells.MaxColumn);
            DataTable dataTable = worksheet.Cells.ExportDataTableAsString(0, 0, worksheet.Cells.MaxRow + 1, worksheet.Cells.MaxColumn + 1, true);
            Worksheet destsheet = sourceWorkbook.Worksheets[ConstServices.WorksheetsName];
            Console.WriteLine(destsheet);
            destsheet.Cells.ImportDataTable(dataTable, true, "A1");

ConstServices.WorksheetsName = TimeLog Converted

我希望我能抓住一个而不是其他人。

我也发现了这个问题,但是使用不同的库,一个可能的解决方案是在工作簿上找到一个名为 workbook.worksheet[index].visibilityworkbook.worksheet[index].IsVisible 或非常相似的东西的库方法,然后如果将该值设置为 false,则在复制到另一个文件期间工作簿将忽略不可见的工作表

另一种可靠的方法是:删除源工作簿中除所需的 sheet 之外的所有其他 sheet,然后将工作簿合并到其他 Excel 文件。现在您的最终文件将包含所有现有的 sheets(来自新文件)加上您想要的来自源(模板)工作簿的 sheet。请参阅示例代码段供您参考:

例如

示例代码:

// Load template and remove all other worksheets except your desired one
string sheetName = "TimeLog Converted";            
Workbook template = new Workbook("e:\test2\Template1.xlsx");
var checkIndex = 0;

while (template.Worksheets.Count != 1)
{
     if (template.Worksheets[checkIndex].Name != sheetName)
      {
           template.Worksheets.RemoveAt(checkIndex);
      }
      else
      {
         checkIndex++;                    
      }
                
}
           
// Merge files (copy your desired worksheet from the source file to other workbook)  
Workbook newfile = new Workbook("e:\test2\MyFile1.xlsx");
newfile.Combine(template);

// save the final workbook (it will also include your desired worksheet from source workbook)
newfile.Save("e:\test2\out1.xlsx");

您也可以 post 在 Aspose.Cells forum 中提出您的疑问或问题(示例),我们可以在那里为您提供帮助。

PS。我在 Aspose 担任支持开发人员/传播者。