Отслеживание процесса преобразования Excel в TIFF

Возможные сценарии использования

Иногда преобразование больших файлов Excel может занять некоторое время. В это время вы можете захотеть показать ход преобразования документа, а не просто экран загрузки, чтобы повысить удобство использования вашего приложения. Aspose.Cells поддерживает процесс преобразования документа отслеживания, предоставляя**IPageSavingCallback** интерфейс.**IPageSavingCallback**интерфейс обеспечивает**PageStartSaving**и**PageEndSaving**методы, которые вы можете реализовать в своем пользовательском классе. Вы также можете контролировать, какие страницы отображаются, как показано в T*estPageSavingCallback*пользовательский класс.

Отслеживание процесса преобразования Excel в TIFF

Следующий пример кода загружаетисходный файл excel и выводит ход преобразования в консоли с помощью командыTestPageSavingCallback пользовательский класс, который реализует**IPageSavingCallback**интерфейс. Сгенерированный выходной файл прилагается для справки.

Выходной файл

Образец кода

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
//Source directory
string sourceDir = RunExamples.Get_SourceDirectory();
//Output directory
string outputDir = RunExamples.Get_OutputDirectory();
Workbook workbook = new Workbook(sourceDir + "sampleUseWorkbookRenderForImageConversion.xlsx");
ImageOrPrintOptions opts = new ImageOrPrintOptions();
opts.PageSavingCallback = new TestTiffPageSavingCallback();
opts.ImageType = ImageType.Tiff;
WorkbookRender wr = new WorkbookRender(workbook, opts);
wr.ToImage(outputDir + "DocumentConversionProgressForTiff_out.tiff");

Ниже приведен код дляTestTiffPageSavingCallbackпользовательский класс.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
public class TestTiffPageSavingCallback : IPageSavingCallback
{
public void PageStartSaving(PageStartSavingArgs args)
{
Console.WriteLine("Start saving page index {0} of pages {1}", args.PageIndex, args.PageCount);
//don't output pages before page index 2.
if (args.PageIndex < 2)
{
args.IsToOutput = false;
}
}
public void PageEndSaving(PageEndSavingArgs args)
{
Console.WriteLine("End saving page index {0} of pages {1}", args.PageIndex, args.PageCount);
//don't output pages after page index 8.
if (args.PageIndex >= 8)
{
args.HasMorePages = false;
}
}
}

Консольный вывод

Начать сохранение индекса страницы 0 из страниц 10
Завершить сохранение индекса страницы 0 из страниц 10
Начать сохранение индекса страницы 1 из страниц 10
Завершить сохранение индекса страницы 1 из страниц 10
Начать сохранение указателя страниц 2 из страниц 10
Завершить сохранение указателя страниц 2 из страниц 10
Начать сохранение указателя страницы 3 из страниц 10
Завершить сохранение указателя страниц 3 из страниц 10
Начать сохранение индекса страниц 4 из страниц 10
Завершить сохранение указателя страниц 4 из страниц 10
Начать сохранение индекса страницы 5 из страниц 10
Завершить сохранение индекса страницы 5 из страниц 10
Начать сохранение индекса страницы 6 из страниц 10
Завершить сохранение индекса 6 страницы из 10
Начать сохранение индекса страницы 7 из страниц 10
Завершить сохранение индекса страницы 7 из страниц 10
Начать сохранение индекса страницы 8 из страниц 10
Завершить сохранение индекса страницы 8 из страниц 10