从 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].visibility
或 workbook.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 担任支持开发人员/传播者。
我只想从我的 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].visibility
或 workbook.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 担任支持开发人员/传播者。