Excel den TIFF e Dönüşüm İlerleme Takibi (C++)

Olası Kullanım Senaryoları

Bazen büyük Excel dosyalarını dönüştürmek zaman alabilir. Bu süre boyunca, uygulamanızın kullanılabilirliğini artırmak için yalnızca yükleme ekranı yerine döküman dönüştürme ilerlemesini göstermek isteyebilirsiniz. Aspose.Cells, IPageSavingCallback arayüzünü sağlayarak belge dönüşüm ilerlemesini takip etmeyi destekler. IPageSavingCallback arayüzü, sizin özelleştirilmiş sınıfınızda uygulayabileceğiniz PageStartSaving ve PageEndSaving metodlarını sağlar. Ayrıca, hangi sayfaların render edileceğini kontrol edebilirsiniz, bu da TestPageSavingCallback özel sınıfında gösterilmiştir.

Excel’den TIFF’e Dönüşüm İlerlemesini İzle

Aşağıdaki kod örneği, IPageSavingCallback arayüzünü uygulayan TestPageSavingCallback özel sınıfını kullanarak kaydettiğiniz kaynak Excel dosyasını (95584311.xlsx) yükler ve konsolda dönüşüm ilerlemesini gösterir. Oluşturulan çıktı dosyası örneğinize eklenmiştir.

Output File

Örnek Kod

#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;
}

Aşağıdaki kod TestTiffPageSavingCallback özel sınıf için olan kodu içerir.

#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);
        }
    }
};

Konsol Çıktısı

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>