您是否需要跟踪Excel到PDF的转换以获取更大的文件? Aspose.Cells可以满足您的需求!
在Aspose.Cells for .NET最新版(点击下载)中,提供了一种回调事件/机制,可以通知转换的进度,需要做的就是实现一个接口并使用Aspose.Cells API编写代码。同时Aspose.Cells现在支持将组合图表从XLS精确优雅地转换为XLSX。下面我们一起来了解一下。
跟踪转换进度
假设正在将一个巨大的Excel文件转换为PDF,观看加载屏幕并等待程序完成任务。Aspose.Cells通过提供IPageSavingCallBack接口实现了显示文档转换进度。使用此界面,将能够获得要呈现为PDF的页面总数以及PageStartSaving和PageEndSaving方法。这些方法应该在一些自定义类中实现,它将连续提供正在呈现的当前页码和总页数等。使用此自定义类,还可以设计图形控件或只是在控制台上显示文本以显示文档转换逐页进度。
下面是一个准备好运行的示例以及演示这些方法实现的自定义类示例。只需复制此代码即可享受新的进度监控功能。
//源目录 string sourceDir = RunExamples.Get_SourceDirectory(); //输出目录 string outputDir = RunExamples.Get_OutputDirectory(); Workbook workbook = new Workbook(sourceDir + "PagesBook1.xlsx"); PdfSaveOptions pdfSaveOptions = new PdfSaveOptions(); pdfSaveOptions.PageSavingCallback = new TestPageSavingCallback(); workbook.Save(outputDir + "DocumentConversionProgress.pdf", pdfSaveOptions);
下面是TestPageSavingCallback自定义类的代码。
public class TestPageSavingCallback : 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 11 End saving page index 0 of pages 11 Start saving page index 1 of pages 11 End saving page index 1 of pages 11 Start saving page index 2 of pages 11 End saving page index 2 of pages 11 Start saving page index 3 of pages 11 End saving page index 3 of pages 11 Start saving page index 4 of pages 11 End saving page index 4 of pages 11 Start saving page index 5 of pages 11 End saving page index 5 of pages 11 Start saving page index 6 of pages 11 End saving page index 6 of pages 11 Start saving page index 7 of pages 11 End saving page index 7 of pages 11 Start saving page index 8 of pages 11 End saving page index 8 of pages 11
使用组合图将XLS转换为XLSX
更新前的结果
更新后的结果
Workbook workbook = new Workbook("SourceExcel.xls"); workbook.Save("outputExcel.xlsx", SaveFormat.Xlsx);
来源:oschina
链接:https://my.oschina.net/u/4087915/blog/3099839