Ladda specifika kalkylblad i en arbetsbok med C++
Contents
[
Hide
]
Som standard laddar Aspose.Cells hela kalkylbladet i minnet. Det är möjligt att ladda endast specifika blad, vilket kan förbättra prestanda och använda mindre minne. Denna metod är användbar när du arbetar med en stor arbetsbok som består av många kalkylblad.
#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;
}
Här är implementationen av CustomLoad
-klassen.
#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);
}
}
};