1、如何设置报表标题的字体,字体大小。
2、如何在delphi中设置报表的横纵向。
3、在导入excel时怎么判断将要分页(分页时插入表头)
4、怎样去掉某一单元格的网格线使它不打印出来。

解决方案 »

  1.   

    Delphi操作Excel比BCB要方便快速多了(至少在开发时如此)。你说的这些问题,都可以在Excel中通过实际操作,同时记录宏,然后分析宏的VBA代码得到帮助。一般来说,都可以得到答案。
      

  2.   

    例如针对你的最后一问(我不清楚是不要打印所有的Grid,还是对某个单元格的Border设置,我假定是前一个),我在Excel中操作一番后得到的宏代码如下:Sub Macro1()
    '
    ' Macro1 Macro'
        With ActiveSheet.PageSetup
            .LeftHeader = ""
            .CenterHeader = ""
            .RightHeader = ""
            .LeftFooter = ""
            .CenterFooter = ""
            .RightFooter = ""
            .LeftMargin = Application.InchesToPoints(0.75)
            .RightMargin = Application.InchesToPoints(0.75)
            .TopMargin = Application.InchesToPoints(1)
            .BottomMargin = Application.InchesToPoints(1)
            .HeaderMargin = Application.InchesToPoints(0.5)
            .FooterMargin = Application.InchesToPoints(0.5)
            .PrintHeadings = False
            .PrintGridlines = False //就是这里了
            .PrintComments = xlPrintNoComments
            .PrintQuality = 600
            .CenterHorizontally = False
            .CenterVertically = False
            .Orientation = xlPortrait
            .Draft = False
            .PaperSize = xlPaperLetter
            .FirstPageNumber = xlAutomatic
            .Order = xlDownThenOver
            .BlackAndWhite = False
            .Zoom = 100
        End With
        ActiveWindow.SelectedSheets.PrintPreview
    End Sub你看,设置的东西还是很多的。你完全可以拷贝到Delphi中去进行进一步的调试。
      

  3.   

    你要求的实在太多了,这样吧,从我的系统里拷出部分来:
    procedure TCreatedataForm.BtnExlClick(Sender: TObject);
    var
     ExlOLE: Variant;
     ExlFile: string;
     I, R, Ri, Li: Integer;
     TextList: TStrings;
    begin
      with TSaveDialog.Create(Self) do
      try
        Filter:='*.XLS|*.XLS';
        DefaultExt:='XLS';
        if Execute then
          ExlFile:=FileName
        else
          Exit;
      finally
        Free;
      end;
      try
        ExlOLE:=CreateOLEObject('Excel.Application');
      except
        Application.MessageBox('Not Install Office Excel!',PChar(Application.Title),MB_OKCANCEL+MB_ICONWARNING);
        Abort;
      end;
      Screen.Cursor:=crHourGlass;
      if ADQData.State in [dsInsert, dsEdit] then ADQData.Post;
      ExlOLE.WorkBooks.Add;
      ExlOLE.Visible:=False;
      try
        //页面设置
        ExlOLE.ActiveSheet.PageSetup.Orientation:=2;
        ExlOLE.ActiveSheet.PageSetup.TopMargin:=28;
        ExlOLE.ActiveSheet.PageSetup.HeaderMargin:=12;
        ExlOLE.ActiveSheet.PageSetup.BottomMargin:=28;
        ExlOLE.ActiveSheet.PageSetup.FooterMargin:=12;
        ExlOLE.ActiveSheet.PageSetup.LeftMargin:=8;
        ExlOLE.ActiveSheet.PageSetup.RightMargin:=8;
        ExlOLE.ActiveSheet.PageSetup.LeftFooter:='名称';  //设置页脚
        ExlOLE.ActiveSheet.PageSetup.CenterFooter:='签名'+StringOfChar(' ',24)+'日期';
        ExlOLE.ActiveSheet.PageSetup.PrintTitleRows:='$1:$8';  //设置页眉
        //设置列宽
        ExlOLE.ActiveSheet.Columns[1].ColumnWidth:=25.25;
        ExlOLE.ActiveSheet.Columns[2].ColumnWidth:=13.25;
        ExlOLE.ActiveSheet.Columns[3].ColumnWidth:=15.75;
        ExlOLE.ActiveSheet.Columns[4].ColumnWidth:=5.75;
        ExlOLE.ActiveSheet.Columns[5].ColumnWidth:=5.25;
        ExlOLE.ActiveSheet.Columns[6].ColumnWidth:=6.25;
        ExlOLE.ActiveSheet.Columns[7].ColumnWidth:=4.75;
        ExlOLE.ActiveSheet.Columns[8].ColumnWidth:=7.25;
        ExlOLE.ActiveSheet.Columns[9].ColumnWidth:=13.75;
        ExlOLE.ActiveSheet.Columns[10].ColumnWidth:=27.25;
        ExlOLE.ActiveSheet.Columns[11].ColumnWidth:=4.25;
        //控制第一行, 主要控制行高
        ExlOLE.ActiveSheet.Rows[1].RowHeight:=20.25;
        ExlOLE.ActiveSheet.Cells[1,1]:=ExlHead[16];
        ExlOLE.ActiveSheet.Cells[1,1].Font.Size:=14;
        ExlOLE.ActiveSheet.Cells[1,9]:='公司: ';
        ExlOLE.ActiveSheet.Cells[1,9].Font.Size:=9;
        ExlOLE.ActiveSheet.Cells[1,9].Font.Underline:=True;
       //控制第七, 八两行的线条
        //控制边框线条, 默认LineStyle=1
        ExlOLE.ActiveSheet.Range['A7','K8'].Borders[7].Weight:=3; //区域左边
        ExlOLE.ActiveSheet.Range['A7','K8'].Borders[8].Weight:=3; //区域上边
        ExlOLE.ActiveSheet.Range['A7','K8'].Borders[9].Weight:=3; //区域下边
        ExlOLE.ActiveSheet.Range['A7','K8'].Borders[10].Weight:=3; //区域右边
        //内部线
        ExlOLE.ActiveSheet.Range['D7','E7'].Borders[9].LineStyle:=1;  //包装部分横线
        ExlOLE.ActiveSheet.Range['A7','A8'].Borders[10].LineStyle:=1;
        ExlOLE.ActiveSheet.Range['B7','B8'].Borders[10].LineStyle:=1;
        ExlOLE.ActiveSheet.Range['C7','C8'].Borders[10].LineStyle:=1;
        ExlOLE.ActiveSheet.Range['D8','D8'].Borders[10].LineStyle:=1;
        ExlOLE.ActiveSheet.Range['E7','E8'].Borders[10].LineStyle:=1;
        ExlOLE.ActiveSheet.Range['F7','F8'].Borders[10].LineStyle:=1;
        ExlOLE.ActiveSheet.Range['G7','G8'].Borders[10].LineStyle:=1;
        ExlOLE.ActiveSheet.Range['H7','H8'].Borders[10].LineStyle:=1;
        ExlOLE.ActiveSheet.Range['I7','I8'].Borders[10].LineStyle:=1;
        ExlOLE.ActiveSheet.Range['J7','J8'].Borders[10].Weight:=3;
        //控制第七行, 主要控制行高, 写入标题头
        ExlOLE.ActiveSheet.Rows[7].RowHeight:=13.25;
        ExlOLE.ActiveSheet.Rows[7].Font.Size:=10;......  ExlOLE.ActiveWorkBook.SaveAs(ExlFile);
      ExlOLE.ActiveWorkBook.Saved:=True;
      ExlOLE.Quit;
      Screen.Cursor:=crDefault;中间删除很多与业务数据相关的部分......一个令人心痛的系统,没有从用户那里收到Money!
      

  4.   

    VB中的这语句怎么在delphi中使用呢?
    .CenterHeader = "&""宋体,加粗""&24工程量一览表"