复制或移动 Excel 工作表

Excel 文件用于管理复杂的数据,例如部门预算或年度销售报告。在某些情况下,您可能拥有要用于创建报告的现成模板。为此,您可以创建模板工作表的副本。您可能还需要组织工作表来演示数据流。对于这种情况,您可以根据需要重新排列工作表。鉴于此,您将学习如何使用 C++ 以编程方式复制和移动工作表。

用于复制或移动 Excel 工作表的 C++ API

Aspose.Cells for C++ 是一个原生 C++ 库,允许您创建、读取和更新 Excel 文件,而无需安装 Microsoft Excel。该 API 还支持复制和移动 Excel 工作表。您可以通过 NuGet 安装 API,也可以直接从 下载 部分下载。

PM> Install-Package Aspose.Cells.Cpp

使用 C++ 在 Excel 工作簿中复制工作表

以下是在 Excel 工作簿中复制工作表的步骤。

以下是使用 C++ 在 Excel 工作簿中复制工作表的示例代码。

// 源目录路径。
StringPtr srcDir = new String("SourceDirectory\\");

// 输出目录路径。
StringPtr outDir = new String("OutputDirectory\\");

// 加载 Excel 文件
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// 检索工作表
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets();

// 将数据从工作簿中的现有工作表复制到新工作表。
sheets->AddCopy(new String("Sheet1"));

// 保存 Excel 文件
workbook->Save(outDir->StringAppend(new String("Sample1_out.xlsx")));

将工作表从一个工作簿复制到另一个

Aspose.Cells for C++ 还允许您在两个 Excel 文件之间复制工作表。以下是将工作表从一个 Excel 文件复制到另一个文件的步骤。

以下是使用 C++ 将工作表从一个 Excel 工作簿复制到另一个的示例代码。

// 源目录路径。
StringPtr srcDir = new String("SourceDirectory\\");

// 输出目录路径。
StringPtr outDir = new String("OutputDirectory\\");

// 加载源 Excel 文件
intrusive_ptr<IWorkbook> sourceWorkbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// 加载目标 Excel 文件
intrusive_ptr<IWorkbook> destinationWorkbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("book1.xlsx")));

// 检索源工作簿的工作表
intrusive_ptr<IWorksheetCollection> sheets = sourceWorkbook->GetIWorksheets();

// 检索要复制的工作表
intrusive_ptr<IWorksheet> worksheet = sheets->GetObjectByIndex(0);

// 将之前检索到的工作表复制到新工作簿
destinationWorkbook->GetIWorksheets()->GetObjectByIndex(0)->Copy(worksheet);

// 保存 Excel 文件
destinationWorkbook->Save(outDir->StringAppend(new String("book1_out.xlsx")));

使用 C++ 将工作表移动到不同的位置

以下是在 Excel 工作簿中更改工作表位置的步骤。

以下是使用 C++ 将工作表移动到同一工作簿中的不同位置的示例代码。

// 源目录路径。
StringPtr srcDir = new String("SourceDirectory\\");

// 输出目录路径。
StringPtr outDir = new String("OutputDirectory\\");

// 加载 Excel 文件
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// 检索工作表
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets();

// 访问第一张工作表
intrusive_ptr<IWorksheet> sheet = sheets->GetObjectByIndex(0);

// 将第一张工作表移动到工作簿中的第二个位置。
sheet->MoveTo(1);

// 保存 Excel 文件
workbook->Save(outDir->StringAppend(new String("Sample1_out.xlsx")));

获得免费许可证

您可以通过请求 免费的临时许可证 来试用该 API,而不受评估限制。

结论

在本文中,您学习了如何在同一个 Excel 工作簿内或不同工作簿之间复制工作表。此外,您还了解了如何在 Excel 文件中更改工作表的位置。 Aspose.Cells for C++ 提供了更多处理 Excel 文件的功能,您可以通过访问 官方文档 进行探索。如有任何问题,请随时通过我们的 免费支持论坛 与我们联系。

也可以看看