因为经常需要把客人的Excel文件中的部分内容复制到我司的Excel中,于是做了个批量转换的小程序。可是打印那里不知道如何设置,难题如下:
     第一点:如何设置打印范围?(网上的例子,就两个,一个是每一次都要预览,取消就报错。一个是打印,我没有试成功的。)
     第二点:如何设置打印模式(分页模式)?
     第三点:如何设置一页内打印完?
     
     每一个问题15分。

解决方案 »

  1.   

    提供一种方法
    use ComObjvar 
    ExcelApp: Variant;
    begin
       ExcelApp := CreateOleObject('Excel.Application');
       ExcelApp.Visible := True;
       ExcelApp.WorkBooks.Open(ExePath + 'Excel.xls');
       ExcelApp.Worksheets[1].Activate;//操作第一个工作表
       ExcelApp.ActiveSheet.Rows[5{行号}].PageBreak := 1;//插入分页符,为分页模式准备
       ExcelApp.ActiveWindow.View := xlPageBreakPreview;//分页模式
       ExcelApp.ActiveSheet.PageSetup.PrintArea := '$A$1:$R$5';//设置打印区域
    end;
    简单的写几个语句,希望能帮到你
      

  2.   

        plushenkolxx你提供的方法很有用,不过打印区域那里,我用的是Delphi2005,不能使用那个美元符号,去掉这个符号就正确了。
        分页那里,我不知道是否需要设置缩小?我需要的分页是第55行,现在只能够去到36行。
        前两个问题的分,就给你了。等第三个问题有人回答出来,就结账。
      

  3.   

    你的问题说的还不是很清楚,你不是导入数据么,怎么又提到打印,你是要打印哪个表?既然用了delphi,还用什么excel啊,把数据提出来放数据库里,需要时再导出excel就可以了。如果你问的是在excel中打印功能的话。
    1、excel中可以设置打印区域的,想打哪里就打哪里。不用这么费劲的。
    2、分页功能,excel支持一页打不开时,自动分页,打印完成可以对接起来。
      

  4.   

       回6楼,之前我说过,是客人有自己的EXCEL文件,我司也有EXCEL,但是双方格式不同。我司需要把客人的比如A1位置的资料,摆在我司的A33......人手操作,很麻烦,又容易出错,因为量很大。所以希望做一个小程序来自动转化。
       当然了,客人(程序的使用者)的要求总是无止尽的。他们希望一转出来,就要自动按照客人的季节来命名呀,某个地方的日期格式一定要是英文的等等。现在,他们希望就连打印,也是程序自动调好。
      

  5.   

    既然是这样,你好人做到底,帮他们作个小程序,用access数据库,让他们抛弃excel,这多好啊。