Excel 是一种流行的信息共享格式。您可能会遇到需要导入数据库的 Excel(XLS 或 XLSX) 文件中的数据的情况。为此,您需要将 Excel 文件转换为 CSV 格式。另一方面,您可能有从数据库中导出的 CSV 格式的数据,您需要在 Excel 文件中进一步处理这些数据。对于这种情况,您需要将 CSV 文件转换为 Excel 格式。在本文中,您将学习如何使用 C++ 以编程方式执行这两种转换。
- C++ API 将 Excel 文件转换为 CSV 和 CSV 文件转换为 Excel 格式
- 使用 C++ 将 Excel 文件转换为 CSV 格式
- 将 Excel 工作表转换为 CSV 文件
- 使用 C++ 将 CSV 文件转换为 Excel 格式
- 获得免费许可证
C++ API 将 Excel 文件转换为 CSV 和 CSV 文件转换为 Excel 格式
Aspose.Cells for C++ 是一个原生 C++ 库,允许您创建、读取和修改 Excel 文件。此外,API 支持将 Excel 文件转换为 CSV 格式,反之亦然。您可以通过 NuGet 安装 API,也可以直接从 下载 部分下载。
PM> Install-Package Aspose.Cells.Cpp
使用 C++ 将 Excel 文件转换为 CSV 格式
使用 Aspose.Cells for C++ API 将 Excel 文件转换为 CSV 格式轻而易举。以下是使用 C++ 将 Excel 文件转换为 CSV 格式的步骤。
- 使用 IWorkbook 类加载 Excel 文件。
- 使用 IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String文件名,Aspose::Cells::SaveFormat saveFormat) 方法。
以下是将 Excel 文件转换为 CSV 格式的示例代码。
// 源目录路径。
StringPtr srcDir = new String("SourceDirectory\\");
// 输出目录路径。
StringPtr outDir = new String("OutputDirectory\\");
// 加载输入的 Excel 文件
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));
// 保存输出 CSV 文件
workbook->Save(outDir->StringAppend(new String("Sample1_out.csv")), SaveFormat_CSV);
将 Excel 工作表转换为 CSV 文件
如果 Excel 文件包含多个工作表,则前面的示例仅转换第一个工作表。如果您想将多个工作表转换为 CSV 格式,您可以按照以下步骤操作。
- 使用 IWorkbook 类加载 Excel 文件。
- 使用 IWorkbook->GetIWorksheets() 方法检索工作表。
- 遍历检索到的工作表。
- 在循环中,您可以指定自定义逻辑以将特定工作表转换为 CSV 文件。在此演示中,所有工作表都转换为 CSV 文件。
- 使用 IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index) 方法检索要转换的工作表。
- 创建一个 IWorkbook 类的实例来表示一个新的 CSV 文件。
- 使用 IWorkbook->GetIWorksheets()->GetObjectByIndex(0)->Copy (intrusiveptrAspose::Cells::IWorksheet sourceSheet) 方法。
- 使用 IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String文件名,Aspose::Cells::SaveFormat saveFormat) 方法。
以下是使用 C++ 将 Excel 工作表转换为 CSV 文件的示例代码。
// 源目录路径。
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<Aspose::Cells::Systems::Text::StringBuilder> stringBuilder = new Aspose::Cells::Systems::Text::StringBuilder();
for (int sheet = 0; sheet < sheets->GetCount(); sheet++)
{
// 检索要复制的工作表
intrusive_ptr<IWorksheet> worksheet = sheets->GetObjectByIndex(sheet);
// 创建 IWorkbook 类的实例来表示新工作簿
intrusive_ptr<IWorkbook> newWorkbook = Factory::CreateIWorkbook();
// 将之前检索到的工作表复制到新工作簿
newWorkbook->GetIWorksheets()->GetObjectByIndex(0)->Copy(worksheet);
// 清除字符串生成器并使用字符串连接创建输出路径。
stringBuilder->Clear();
stringBuilder->Append(outDir);
stringBuilder->Append((StringPtr)new String("Sample1_sheet_"));
stringBuilder->Append(sheet);
stringBuilder->Append((StringPtr)new String("_out.csv"));
// 保存输出 CSV 文件
newWorkbook->Save(stringBuilder->ToString(), SaveFormat_CSV);
}
使用 C++ 将 CSV 文件转换为 Excel 格式
以下是使用 C++ 将 CSV 文件转换为 Excel 格式的步骤。
- 创建 ILoadOptions 类的实例。
- 使用之前创建的 ILoadOptions 实例创建 IWorkbook 类的对象。
- 使用 IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String文件名,Aspose::Cells::SaveFormat saveFormat) 方法。
以下是使用 C++ 将 CSV 文件转换为 Excel 格式的示例代码。
// 源目录路径。
StringPtr srcDir = new String("SourceDirectory\\");
// 输出目录路径。
StringPtr outDir = new String("OutputDirectory\\");
// 创建 CSV LoadOptions 对象
intrusive_ptr<ILoadOptions> loadOptions = Factory::CreateILoadOptions(LoadFormat_CSV);
// 加载输入的 Excel 文件
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.csv")), loadOptions);
// 保存输出 CSV 文件
workbook->Save(outDir->StringAppend(new String("Sample1_out.xlsx")), SaveFormat_Xlsx);
获得免费许可证
您可以通过请求 免费的临时许可证 来试用该 API,而不受评估限制。
结论
在本文中,您学习了如何使用 C++ 将 Excel 文件转换为 CSV 格式以及将 CSV 文件转换为 Excel (XLS/XLSX) 格式。 Aspose.Cells for C++ 是一个庞大的 API,它提供了许多用于处理 Excel 文件的附加功能。您可以使用 官方文档 详细探索 API。如有任何问题,请随时通过我们的 免费支持论坛 与我们联系。