使用 C++ 将 Excel 转换为 CSV 和 CSV 到 Excel

Excel 是一种流行的信息共享格式。您可能会遇到需要导入数据库的 Excel(XLSXLSX) 文件中的数据的情况。为此,您需要将 Excel 文件转换为 CSV 格式。另一方面,您可能有从数据库中导出的 CSV 格式的数据,您需要在 Excel 文件中进一步处理这些数据。对于这种情况,您需要将 CSV 文件转换为 Excel 格式。在本文中,您将学习如何使用 C++ 以编程方式执行这两种转换。

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 格式的步骤。

以下是将 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 格式,您可以按照以下步骤操作。

以下是使用 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 格式的步骤。

以下是使用 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。如有任何问题,请随时通过我们的 免费支持论坛 与我们联系。

也可以看看