读书人

运用Ole操作Excel打印表格速度很慢。

发布时间: 2013-01-23 10:44:49 作者: rapoo

使用Ole操作Excel打印表格,速度很慢。求教
就设置了下面这些属性,没有任何其他操作,预览窗口出来前居然需要3秒以上的时间,请问有没有什么优化方法。

从Excel里可以看到,好像每执行一个属性赋值,Excel就重画一次,状态栏不停闪烁“就绪”,影藏Excel显示设置ScreenUpdating为False也没用,执行这些页面设置用时一样....

表数据很小,唯一的要求就是按照格式打印出来,可这个速度真叫人郁闷了...





wb.OlePropertyGet("PageSetup").OlePropertySet("PrintArea", AnsiString(strArea).c_str());

//wb.OlePropertyGet("PageSetup").OlePropertySet("PrintHeadings", false);

wb.OlePropertyGet("PageSetup").OlePropertySet("BlackAndWhite", true);

wb.OlePropertyGet("PageSetup").OlePropertySet("PaperSize", 9);

wb.OlePropertyGet("PageSetup").OlePropertySet("Zoom", false);
wb.OlePropertyGet("PageSetup").OlePropertySet("FitToPagesWide", 1);
wb.OlePropertyGet("PageSetup").OlePropertySet("FitToPagesTall", 1);

// 1纵向,2横向
wb.OlePropertyGet("PageSetup").OlePropertySet("Orientation", Orientation);

wb.OlePropertyGet("PageSetup").OlePropertySet("CenterHorizontally", true);
wb.OlePropertyGet("PageSetup").OlePropertySet("CenterVertically", false);

wb.OlePropertyGet("PageSetup").OlePropertySet("LeftMargin", 0.3);
wb.OlePropertyGet("PageSetup").OlePropertySet("RightMargin", 0.3);
wb.OlePropertyGet("PageSetup").OlePropertySet("TopMargin", 0.3);
wb.OlePropertyGet("PageSetup").OlePropertySet("BottomMargin", 0.3);
wb.OlePropertyGet("PageSetup").OlePropertySet("HeaderMargin", 0.3);
wb.OlePropertyGet("PageSetup").OlePropertySet("FooterMargin", 0.3);

[解决办法]
楼主跑Delphi版问来了?

可以考虑先根据样式设计好模板,然后根据这个模拟新建一个Excel文档,然后将要打印的数据复制过来,再打印.

读书人网 >.NET

热点推荐