使用 C++ 合并文件

介绍

Aspose.Cells 提供多种合并文件的方法。对于包含数据、格式和公式的简单文件,可以使用 Workbook.Combine() 方法合并多个工作簿,使用 Worksheet.Copy() 方法将工作表复制到新工作簿。这些方法使用简单且有效,但如果需要合并大量文件,可能会占用大量系统资源。为了避免此问题,可以使用更高效的 CellsHelper.MergeFiles 静态方法来合并多个文件。

使用Aspose.Cells合并文件

以下示例代码演示如何使用 CellsHelper.MergeFiles 方法合并大文件。它处理两个简单但较大的文件 Book1.xls 和 Book2.xls。这些文件仅包含格式化数据和公式。

#include <iostream>
#include <string>
#include <vector>
#include "Aspose.Cells.h"

using namespace Aspose::Cells;

int main()
{
	Aspose::Cells::Startup();

	U16String srcDir(u"../Data/01_SourceDirectory/");
	U16String outDir(u"../Data/02_OutputDirectory/");

	Vector<U16String> data{
	  srcDir + u"Book1.xls",
	  srcDir + u"Book2.xls"
	};

	U16String cacheFile = outDir + u"test.txt";
	U16String dest = outDir + u"output.xlsx";

	CellsHelper::MergeFiles(data, cacheFile, dest);

	Workbook workbook(dest);

	WorksheetCollection sheets = workbook.GetWorksheets();
	int count = sheets.GetCount();
	for (int idx = 0; idx < count; ++idx)
	{
		Worksheet sheet = sheets.Get(idx);
		U16String sheetName = U16String(u"Sheet_");
		U16String numStr = U16String(std::to_string(idx+1).c_str());
		sheet.SetName(sheetName + numStr);
	}

	workbook.Save(dest);

	Aspose::Cells::Cleanup();
	return 0;
}