Bestimmte Arbeitsblätter in einer Arbeitsmappe mit C++ laden
Contents
[
Hide
]
Standardmäßig lädt Aspose.Cells die gesamte Tabelle in den Speicher. Es ist möglich, nur bestimmte Blätter zu laden, was die Leistung verbessern und weniger Speicher verbrauchen kann. Dieser Ansatz ist nützlich, wenn Sie mit einer großen Arbeitsmappe arbeiten, die aus vielen Arbeitsblättern besteht.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
class CustomLoad : public LoadFilter {
public:
CustomLoad() : LoadFilter(LoadDataFilterOptions::All) {}
// Override StartSheet to customize loading behavior
void StartSheet(Worksheet& sheet) override {
// Custom logic for loading specific worksheet
}
};
int main() {
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Define a new Workbook
Workbook workbook;
// Load the workbook with the specified worksheet only
LoadOptions loadOptions(LoadFormat::Xlsx);
loadOptions.SetLoadFilter(new CustomLoad());
// Create the workbook with custom load options
workbook = Workbook(srcDir + u"TestData.xlsx", loadOptions);
// Perform your desired task
// Save the workbook
workbook.Save(srcDir + u"outputFile.out.xlsx");
std::cout << "Workbook processed and saved successfully!" << std::endl;
Aspose::Cells::Cleanup();
return 0;
}
Hier ist die Implementierung der Klasse CustomLoad
.
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
class CustomLoad : public LoadFilter
{
public:
CustomLoad() : LoadFilter() {}
~CustomLoad() {}
void StartSheet(Worksheet& sheet) override
{
if (sheet.GetName() == u"Sheet2")
{
// Load everything from worksheet "Sheet2"
SetLoadDataFilterOptions(LoadDataFilterOptions::All);
}
else
{
// Load nothing
SetLoadDataFilterOptions(LoadDataFilterOptions::Structure);
}
}
};