Följ konverteringsprocessen för Excel till TIFF med C++
Möjliga användningsscenario
Ibland kan konvertering av stora Excel-filer ta tid. Under denna tid kanske du vill visa konverteringsprogressen för dokumentet istället för en laddningsskärm för att förbättra användbarheten av din applikation. Aspose.Cells stöder spårning av konverteringsprogressen genom att tillhandahålla gränssnittet IPageSavingCallback. Gränssnittet IPageSavingCallback tillhandahåller metoderna PageStartSaving och PageEndSaving som du kan implementera i din egna klass. Du kan också kontrollera vilka sidor som renderas, som demonstreras i den anpassade klassen TestPageSavingCallback.
Spåra konverteringsframsteg för Excel till TIFF
Följande kodexempel laddar in den källa Excel-filen och skriver ut dess konverteringsprogress i konsolen med hjälp av den anpassade klassen TestPageSavingCallback som implementerar gränssnittet IPageSavingCallback. Utdatafilen som genereras är bifogad för din referens.
Exempelkod
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
class TestTiffPageSavingCallback : public IPageSavingCallback {
public:
void PageStartSaving(PageStartSavingArgs& args) override {
// Implement page start saving logic here
}
void PageEndSaving(PageEndSavingArgs& args) override {
// Implement page end saving logic here
}
};
int main() {
Aspose::Cells::Startup();
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
Workbook workbook(srcDir + u"sampleUseWorkbookRenderForImageConversion.xlsx");
ImageOrPrintOptions opts;
opts.SetPageSavingCallback(new TestTiffPageSavingCallback());
opts.SetImageType(Aspose::Cells::Drawing::ImageType::Tiff);
WorkbookRender wr(workbook, opts);
wr.ToImage(outDir + u"DocumentConversionProgressForTiff_out.tiff");
std::cout << "Document converted to TIFF successfully!" << std::endl;
Aspose::Cells::Cleanup();
return 0;
}
Följande är koden för den anpassade klassen TestTiffPageSavingCallback.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
using namespace Aspose::Cells::Rendering;
class TestTiffPageSavingCallback : public IPageSavingCallback
{
public:
void PageStartSaving(PageStartSavingArgs& args) override
{
std::cout << "Start saving page index " << args.GetPageIndex() << " of pages " << args.GetPageCount() << std::endl;
// Don't output pages before page index 2.
if (args.GetPageIndex() < 2)
{
args.SetIsToOutput(false);
}
}
void PageEndSaving(PageEndSavingArgs& args) override
{
std::cout << "End saving page index " << args.GetPageIndex() << " of pages " << args.GetPageCount() << std::endl;
// Don't output pages after page index 8.
if (args.GetPageIndex() >= 8)
{
args.SetHasMorePages(false);
}
}
};
Konsoloutput
Start saving page index 0 of pages 10</br>
End saving page index 0 of pages 10</br>
Start saving page index 1 of pages 10</br>
End saving page index 1 of pages 10</br>
Start saving page index 2 of pages 10</br>
End saving page index 2 of pages 10</br>
Start saving page index 3 of pages 10</br>
End saving page index 3 of pages 10</br>
Start saving page index 4 of pages 10</br>
End saving page index 4 of pages 10</br>
Start saving page index 5 of pages 10</br>
End saving page index 5 of pages 10</br>
Start saving page index 6 of pages 10</br>
End saving page index 6 of pages 10</br>
Start saving page index 7 of pages 10</br>
End saving page index 7 of pages 10</br>
Start saving page index 8 of pages 10</br>
End saving page index 8 of pages 10</br>