Отслеживание процесса преобразования Excel в TIFF
Возможные сценарии использования
Иногда преобразование больших файлов Excel может занять некоторое время. В этот момент вы можете хотеть отображать процесс преобразования документов вместо простого экрана загрузки для повышения удобства использования вашего приложения. Aspose.Cells поддерживает отслеживание процесса преобразования документов, предоставляя интерфейс IPageSavingCallback. Интерфейс IPageSavingCallback предоставляет методы PageStartSaving и PageEndSaving, которые вы можете реализовать в своем собственном классе. Вы также можете управлять тем, какие страницы рендерятся, как показано на примере класса пользовательского TestPageSavingCallback.
Отслеживание процесса преобразования 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; | |
} | |
} | |
} |
Вывод в консоль
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>