复制行和列是处理 Excel 文件时执行的一项常见任务。在某些情况下,您可能需要以编程方式复制 Excel 文件中的行或列。对于此类情况,本文将教您如何使用 C++ 复制 Excel 文件中的行和列。
- 用于复制 Excel 文件中的行和列的 C++ API
- 使用 C++ 复制 Excel 文件中的单行
- 使用 C++ 复制 Excel 文件中的多行
- 使用 C++ 复制 Excel 文件中的单列
- 使用 C++ 复制 Excel 文件中的多列
用于复制 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 文件中复制单行的步骤。
- 使用 IWorkbook 类加载 Excel 文件。
- 检索要复制行的工作表。
- 使用 CopyIRow(intrusiveptrAspose::Cells::ICells sourceCells, Aspose::Cells::Systems::Int32 sourceRowIndex, Aspose::Cells::Systems::Int32 destinationRowIndex) 方法。
- 使用 IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String文件名) 方法。
以下示例代码展示了如何使用 C++ 在 Excel 文件中复制一行。
// 源目录路径。
StringPtr srcDir = new String("SourceDirectory\\Excel\\");
// 输出目录路径。
StringPtr outDir = new String("OutputDirectory\\");
// 加载输入的 Excel 文件
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));
// 获取第一个工作表
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// 复制行
worksheet->GetICells()->CopyIRow(worksheet->GetICells(), 1, 15);
// 保存 Excel 文件
workbook->Save(outDir->StringAppend(new String("CopyRow_out.xlsx")));
使用 C++ 复制 Excel 文件中的多行
为了复制多行,我们将使用 CopyIRows 方法,该方法接受一个指示要复制的总行数的附加参数。要复制多行,请按照以下步骤操作。
- 使用 IWorkbook 类加载 Excel 文件。
- 检索要复制行的工作表。
- 使用 CopyIRows(intrusiveptrAspose::Cells::ICells sourceCells, Aspose::Cells::Systems::Int32 sourceRowIndex, Aspose::Cells::Systems::Int32 destinationRowIndex, Aspose::Cells::Systems::Int32 rowNumber) 方法。
- 使用 IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String文件名) 方法。
以下示例代码展示了如何使用 C++ 复制 Excel 文件中的多行。
// 源目录路径。
StringPtr srcDir = new String("SourceDirectory\\Excel\\");
// 输出目录路径。
StringPtr outDir = new String("OutputDirectory\\");
// 加载输入的 Excel 文件
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));
// 获取第一个工作表
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// 复制行
worksheet->GetICells()->CopyIRows(worksheet->GetICells(), 1, 15, 3);
// 保存 Excel 文件
workbook->Save(outDir->StringAppend(new String("CopyRows_out.xlsx")));
使用 C++ 复制 Excel 文件中的单列
以下是使用 C++ 在 Excel 文件中复制单个列的步骤。
- 使用 IWorkbook 类加载 Excel 文件。
- 检索要在其中复制列的工作表。
- 使用 CopyIColumn(intrusiveptrAspose::Cells::ICells sourceCells, Aspose::Cells::Systems::Int32 sourceColumnIndex, Aspose::Cells::Systems::Int32 destinationColumnIndex) 方法。
- 使用 IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String文件名) 方法。
以下示例代码显示了如何使用 C++ 复制 Excel 文件中的单个列。
// 源目录路径。
StringPtr srcDir = new String("SourceDirectory\\Excel\\");
// 输出目录路径。
StringPtr outDir = new String("OutputDirectory\\");
// 加载输入的 Excel 文件
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));
// 获取第一个工作表
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// 复制列
worksheet->GetICells()->CopyIColumn(worksheet->GetICells(), 0, 6);
// 保存 Excel 文件
workbook->Save(outDir->StringAppend(new String("CopyColumn_out.xlsx")));
使用 C++ 复制 Excel 文件中的多列
为了复制多列,我们将使用 CopyIColumns 方法,该方法接受一个附加参数,指示要复制的列总数。要复制多列,请按照以下步骤操作。
- 使用 IWorkbook 类加载 Excel 文件。
- 检索要复制列的工作表。
- 使用 CopyIColumns(intrusiveptrAspose::Cells::ICells sourceCells, Aspose::Cells::Systems::Int32 sourceColumnIndex, Aspose::Cells::Systems::Int32 destinationColumnIndex, Aspose::Cells::Systems::Int32 columnNumber) 方法。
- 使用 IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String文件名) 方法。
以下示例代码显示了如何使用 C++ 复制 Excel 文件中的多个列。
// 源目录路径。
StringPtr srcDir = new String("SourceDirectory\\Excel\\");
// 输出目录路径。
StringPtr outDir = new String("OutputDirectory\\");
// 加载输入的 Excel 文件
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));
// 获取第一个工作表
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// 复制列
worksheet->GetICells()->CopyIColumns(worksheet->GetICells(), 0, 6, 3);
// 保存 Excel 文件
workbook->Save(outDir->StringAppend(new String("CopyColumns_out.xlsx")));
获得免费许可证
为了在没有评估限制的情况下试用 API,您可以申请 免费的临时许可证。
结论
在本文中,您学习了如何使用 C++ 复制 Excel 文件中的行和列。共享代码示例展示了如何在 Excel 文件中复制单个和多个行和列。我们使用 Aspose.Cells for C++ API 来实现这一点。它是一个强大的 API,为处理 Excel 文件提供了许多附加功能。您可以通过访问 官方文档 来详细探索 API。如有任何疑问,请随时通过我们的 免费支持论坛 与我们联系。