类 别:COM & ActiveX
(一) 使用动态创建的方法
首先创建 Excel 对象,使用ComObj:
var ExcelApp: Variant;
ExcelApp := CreateOleObject( 'Excel.Application' );
1) 显示当前窗口:
ExcelApp.Visible := True;
2) 更改 Excel 标题栏:
ExcelApp.Caption := '应用程序调用 Microsoft Excel';
3) 添加新工作簿:
ExcelApp.WorkBooks.Add;
4) 打开已存在的工作簿:
ExcelApp.WorkBooks.Open( 'C:\Excel\Demo.xls' );
5) 设置第2个工作表为活动工作表:
ExcelApp.WorkSheets[2].Activate; 
或 
ExcelApp.WorksSheets[ 'Sheet2' ].Activate;
6) 给单元格赋值:
ExcelApp.Cells[1,4].Value := '第一行第四列';
7) 设置指定列的宽度(单位:字符个数),以第一列为例:
ExcelApp.ActiveSheet.Columns[1].ColumnsWidth := 5;
8) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:
ExcelApp.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米
9) 在第8行之前插入分页符:
ExcelApp.WorkSheets[1].Rows[8].PageBreak := 1;
10) 在第8列之前删除分页符:
ExcelApp.ActiveSheet.Columns[4].PageBreak := 0;
11) 指定边框线宽度:
ExcelApp.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3;
1-左 2-右 3-顶 4-底 5-斜( \ ) 6-斜( / )
12) 清除第一行第四列单元格公式:
ExcelApp.ActiveSheet.Cells[1,4].ClearContents;
13) 设置第一行字体属性:
ExcelApp.ActiveSheet.Rows[1].Font.Name := '隶书';
ExcelApp.ActiveSheet.Rows[1].Font.Color := clBlue;
ExcelApp.ActiveSheet.Rows[1].Font.Bold := True;
ExcelApp.ActiveSheet.Rows[1].Font.UnderLine := True;
14) 进行页面设置:
a.页眉:
ExcelApp.ActiveSheet.PageSetup.CenterHeader := '报表演示';
b.页脚:
ExcelApp.ActiveSheet.PageSetup.CenterFooter := '第&P页';
c.页眉到顶端边距2cm:
ExcelApp.ActiveSheet.PageSetup.HeaderMargin := 2/0.035;
d.页脚到底端边距3cm:
ExcelApp.ActiveSheet.PageSetup.HeaderMargin := 3/0.035;
e.顶边距2cm:
ExcelApp.ActiveSheet.PageSetup.TopMargin := 2/0.035;
f.底边距2cm:
ExcelApp.ActiveSheet.PageSetup.BottomMargin := 2/0.035;
g.左边距2cm:
ExcelApp.ActiveSheet.PageSetup.LeftMargin := 2/0.035;
h.右边距2cm:
ExcelApp.ActiveSheet.PageSetup.RightMargin := 2/0.035;
i.页面水平居中:
ExcelApp.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035;
j.页面垂直居中:
ExcelApp.ActiveSheet.PageSetup.CenterVertically := 2/0.035;
k.打印单元格网线:
ExcelApp.ActiveSheet.PageSetup.PrintGridLines := True;
15) 拷贝操作:
a.拷贝整个工作表:
ExcelApp.ActiveSheet.Used.Range.Copy;
b.拷贝指定区域:
ExcelApp.ActiveSheet.Range[ 'A1:E2' ].Copy;
c.从A1位置开始粘贴:
ExcelApp.ActiveSheet.Range.[ 'A1' ].PasteSpecial;
d.从文件尾部开始粘贴:
ExcelApp.ActiveSheet.Range.PasteSpecial;
16) 插入一行或一列:
a. ExcelApp.ActiveSheet.Rows[2].Insert;
b. ExcelApp.ActiveSheet.Columns[1].Insert;
17) 删除一行或一列:
a. ExcelApp.ActiveSheet.Rows[2].Delete;
b. ExcelApp.ActiveSheet.Columns[1].Delete;
18) 打印预览工作表:
ExcelApp.ActiveSheet.PrintPreview;
19) 打印输出工作表:
ExcelApp.ActiveSheet.PrintOut;
20) 工作表保存:
if not ExcelApp.ActiveWorkBook.Saved then
ExcelApp.ActiveSheet.PrintPreview;
21) 工作表另存为:
ExcelApp.SaveAs( 'C:\Excel\Demo1.xls' );
22) 放弃存盘:
ExcelApp.ActiveWorkBook.Saved := True;
23) 关闭工作簿:
ExcelApp.WorkBooks.Close;
24) 退出 Excel:
ExcelApp.Quit; 
 

解决方案 »

  1.   

    (二) 使用Delphi 控件方法
    在Form中分别放入ExcelApplication, ExcelWorkbook和ExcelWorksheet。 
    1) 打开Excel 
    ExcelApplication1.Connect;
    2) 显示当前窗口:
    ExcelApplication1.Visible[0]:=True;
    3) 更改 Excel 标题栏:
    ExcelApplication1.Caption := '应用程序调用 Microsoft Excel';
    4) 添加新工作簿:
    ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,0));
    5) 添加新工作表:
    var Temp_Worksheet: _WorkSheet;
    begin
    Temp_Worksheet:=ExcelWorkbook1.
    WorkSheets.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam,0) as _WorkSheet;
    ExcelWorkSheet1.ConnectTo(Temp_WorkSheet);
    End;
    6) 打开已存在的工作簿:
    ExcelApplication1.Workbooks.Open (c:\a.xls
    EmptyParam,EmptyParam,EmptyParam,EmptyParam,
    EmptyParam,EmptyParam,EmptyParam,EmptyParam,
    EmptyParam,EmptyParam,EmptyParam,EmptyParam,0)
    7) 设置第2个工作表为活动工作表:
    ExcelApplication1.WorkSheets[2].Activate; 或
    ExcelApplication1.WorksSheets[ 'Sheet2' ].Activate;
    8) 给单元格赋值:
    ExcelApplication1.Cells[1,4].Value := '第一行第四列';
    9) 设置指定列的宽度(单位:字符个数),以第一列为例:
    ExcelApplication1.ActiveSheet.Columns[1].ColumnsWidth := 5;
    10) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:
    ExcelApplication1.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米
    11) 在第8行之前插入分页符:
    ExcelApplication1.WorkSheets[1].Rows[8].PageBreak := 1;
    12) 在第8列之前删除分页符:
    ExcelApplication1.ActiveSheet.Columns[4].PageBreak := 0;
    13) 指定边框线宽度:
    ExcelApplication1.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3;
    1-左 2-右 3-顶 4-底 5-斜( \ ) 6-斜( / )
    14) 清除第一行第四列单元格公式:
    ExcelApplication1.ActiveSheet.Cells[1,4].ClearContents;
    15) 设置第一行字体属性:
    ExcelApplication1.ActiveSheet.Rows[1].Font.Name := '隶书';
    ExcelApplication1.ActiveSheet.Rows[1].Font.Color := clBlue;
    ExcelApplication1.ActiveSheet.Rows[1].Font.Bold := True;
    ExcelApplication1.ActiveSheet.Rows[1].Font.UnderLine := True;
    16) 进行页面设置:
    a.页眉:
    ExcelApplication1.ActiveSheet.PageSetup.CenterHeader := '报表演示';
    b.页脚:
    ExcelApplication1.ActiveSheet.PageSetup.CenterFooter := '第&P页';
    c.页眉到顶端边距2cm:
    ExcelApplication1.ActiveSheet.PageSetup.HeaderMargin := 2/0.035;
    d.页脚到底端边距3cm:
    ExcelApplication1.ActiveSheet.PageSetup.HeaderMargin := 3/0.035;
    e.顶边距2cm:
    ExcelApplication1.ActiveSheet.PageSetup.TopMargin := 2/0.035;
    f.底边距2cm:
    ExcelApplication1.ActiveSheet.PageSetup.BottomMargin := 2/0.035;
    g.左边距2cm:
    ExcelApplication1.ActiveSheet.PageSetup.LeftMargin := 2/0.035;
    h.右边距2cm:
    ExcelApplication1.ActiveSheet.PageSetup.RightMargin := 2/0.035;
    i.页面水平居中:
    ExcelApplication1.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035;
    j.页面垂直居中:
    ExcelApplication1.ActiveSheet.PageSetup.CenterVertically := 2/0.035;
    k.打印单元格网线:
    ExcelApplication1.ActiveSheet.PageSetup.PrintGridLines := True;
    17) 拷贝操作:
    a.拷贝整个工作表:
    ExcelApplication1.ActiveSheet.Used.Range.Copy;
    b.拷贝指定区域:
    ExcelApplication1.ActiveSheet.Range[ 'A1:E2' ].Copy;
    c.从A1位置开始粘贴:
    ExcelApplication1.ActiveSheet.Range.[ 'A1' ].PasteSpecial;
    d.从文件尾部开始粘贴:
    ExcelApplication1.ActiveSheet.Range.PasteSpecial;
    18) 插入一行或一列:
    a. ExcelApplication1.ActiveSheet.Rows[2].Insert;
    b. ExcelApplication1.ActiveSheet.Columns[1].Insert;
    19) 删除一行或一列:
    a. ExcelApplication1.ActiveSheet.Rows[2].Delete;
    b. ExcelApplication1.ActiveSheet.Columns[1].Delete;
    20) 打印预览工作表:
    ExcelApplication1.ActiveSheet.PrintPreview;
    21) 打印输出工作表:
    ExcelApplication1.ActiveSheet.PrintOut;
    22) 工作表保存:
    if not ExcelApplication1.ActiveWorkBook.Saved then
    ExcelApplication1.ActiveSheet.PrintPreview;
    23) 工作表另存为:
    ExcelApplication1.SaveAs( 'C:\Excel\Demo1.xls' );
    24) 放弃存盘:
    ExcelApplication1.ActiveWorkBook.Saved := True;
    25) 关闭工作簿:
    ExcelApplication1.WorkBooks.Close;
    26) 退出 Excel:
    ExcelApplication1.Quit;
    ExcelApplication1.Disconnect;
    (三) 使用Delphi 控制Excle二维图
    在Form中分别放入ExcelApplication, ExcelWorkbook和ExcelWorksheet
    var asheet1,achart, range:variant;
    1)选择当第一个工作薄第一个工作表
    asheet1:=ExcelApplication1.Workbooks[1].Worksheets[1];
    2)增加一个二维图
    achart:=asheet1.chartobjects.add(100,100,200,200);
    3)选择二维图的形态
    achart.chart.charttype:=4;
    4)给二维图赋值
    series:=achart.chart.seriescollection;
    range:=sheet1!r2c3:r3c9;
    series.add(range,true);
    5)加上二维图的标题
    achart.Chart.HasTitle:=True;
    achart.Chart.ChartTitle.Characters.Text:=’ Excle二维图’ 
    6)改变二维图的标题字体大小
    achart.Chart.ChartTitle.Font.size:=6;
    7)给二维图加下标说明
    achart.Chart.Axes(xlCategory, xlPrimary).HasTitle := True;
    achart.Chart.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text := '下标说明';
    8)给二维图加左标说明
    achart.Chart.Axes(xlValue, xlPrimary).HasTitle := True;
    achart.Chart.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text := '左标说明';
    9)给二维图加右标说明
    achart.Chart.Axes(xlValue, xlSecondary).HasTitle := True;
    achart.Chart.Axes(xlValue, xlSecondary).AxisTitle.Characters.Text := '右标说明';
    10)改变二维图的显示区大小
    achart.Chart.PlotArea.Left := 5;
    achart.Chart.PlotArea.Width := 223;
    achart.Chart.PlotArea.Height := 108;
    11)给二维图坐标轴加上说明
    achart.chart.seriescollection[1].NAME:='坐标轴说明';
      

  2.   

    楼主还没有写怎么样才能完全关闭一个大开的excel进程
      

  3.   

    请问:
    tiexinliu (铁心刘)
    如何合并单元格,谢谢
      

  4.   

    TO:IORILI(眼镜@_@) 
    关闭EXCEL进程你可以用API嘛.UP
      

  5.   

    unit Unit1;interfaceuses
     Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
     Dialogs, StdCtrls,
     ComObj;type
     TForm1 = class(TForm)
       Button1: TButton;
       procedure Button1Click(Sender: TObject);
       procedure FormDestroy(Sender: TObject);
       procedure FormCreate(Sender: TObject);
     private
       { Private declarations }
       procedure setEclStyle;
       procedure drawImg;
       function getColChar(col: Integer): string;
     public
       { Public declarations }
     end;var
     Form1: TForm1;implementation{$R *.dfm}var
     eclApp: Variant;
     imgFile: string;const
     rowStart = 6;
     colStart = 3;
    //生成99乘法表
    procedure TForm1.Button1Click(Sender: TObject);
    var
     i,j: Integer;
     row,col: Integer;
    begin
     try
       //创建OLE对象Excel Application与 WorkBook
       eclApp:= CreateOleObject('Excel.Application');
       eclApp.workBooks.Add;
     except
       messagebox(handle,'您的机器里可能未安装Microsoft Excel或异常','无法生成',MB_OK  or MB_ICONWARNING);
       Exit;
     end; eclApp.visible:= True; Hide;  //生成过程将程序隐藏
     try
       for i:= 1 to 9 do
       begin
         eclApp.Cells(rowStart, colStart + i):= i;
         eclApp.Cells(rowStart + i, colStart):= i;
         for j:= 1 to 9 do
         begin
           row:= rowStart + i;
           col:= colStart + j;
           eclApp.Cells(row, col):= i * j;       //设置字体,底框颜色 颜色值为 $00BBGGRR
           if i < j then
           begin
             eclApp.Cells.item[row,col].Font.Color:= $00FF0000;
             eclApp.Cells.item[row,col].Interior.Pattern:= 1;
             eclApp.cells.item[row,col].Interior.ColorIndex:= 12;
           end
           else if i > j then
           begin
             eclApp.Cells.item[row,col].Font.Color:= $0000FF00;
             eclApp.Cells.item[row,col].Interior.Pattern:= 1;
             eclApp.cells.item[row,col].Interior.ColorIndex:= 9;
           end
           else begin
             eclApp.Cells.item[row,col].Font.Color:= $000000FF;
             eclApp.Cells.item[row,col].Interior.Pattern:= 1;
             eclApp.cells.item[row,col].Interior.ColorIndex:= 6;
           end;
         end;
       end;
       SetEclStyle;
       //设置纸线为横向
       eclApp.ActiveSheet.PageSetup.Orientation:= 2;
     finally
       Show;
     end;
     Application.BringToFront;   //将应用程序提前
     messagebox(handle,'生成完毕,您可以再进行编辑并存盘','生成成功',MB_OK  or MB_ICONINFORMATION);
    end;//关闭程序时,释放Excel应用对象
    procedure TForm1.FormDestroy(Sender: TObject);
    begin
     //关闭eclApp
     //若不进行这一步,在任务管理器中会驻留Excel进程
     //但可以不必关闭Excel (eclApp.Quit),这样,操作员可以继续编辑或打印表格
     eclApp:= Unassigned;
    end;//设置表格的显示样式
    procedure TForm1.setEclStyle;
    var
     Sheet, Range:Variant;
     s: string;
     rct: TRect;
    begin Sheet:= eclApp.WorkBooks[1].WorkSheets[1]; s:= Format('%s%d:%s%d',[getColChar(colStart),
       rowStart,
       getColChar(colStart + 9),
       rowStart + 9]);
     Range:= Sheet.Range[s];  //得到区域对象 Range.Font.Name:= 'Tahoma';
     Range.Font.Bold:= True; //设置区域的外框线型
     // 1: Left, 2: Right, 3: Top, 4: bottom
     // 5: \, 6: / (斜线)
     // 7: Left, 8: Top, 9: bottom, 10: Right (不包括内部单元格)
     // 11, 12 , 内部单元格线条 (分别是竖线和横线,12我用了没效果)
     Range.Borders[7].LineStyle:= 1;
     Range.Borders[7].Weight:= 3;
     Range.Borders[8].LineStyle:= 1;
     Range.Borders[8].Weight:= 3;
     Range.Borders[9].LineStyle:= 1;
     Range.Borders[9].Weight:= 3;
     Range.Borders[10].LineStyle:= 1;
     Range.Borders[10].Weight:= 3; Range.Borders[11].LineStyle:= 1;
     Range.Borders[11].Weight:= 2;
     Range.Borders[11].ColorIndex:= 2;
     Range.Borders[12].LineStyle:= 1;
     Range.Borders[12].Weight:= 2;
     Range.Borders[12].ColorIndex:= 2; //水平,垂直对齐方式
     Range.HorizontalAlignment:= 3;
     Range.VerticalAlignment:= 2;
     
     //单元格行高,列宽
     Range.ColumnWidth:= 9;
     Range.RowHeight:= 18; //设置表头
     s:= Format('%s%d:%0:s%2:d',[getColChar(colStart),
       rowStart,
       rowStart + 9]);
     Range:= Sheet.Range[s];  //得到区域对象
     Range.ColumnWidth:= 5;
     Range.Interior.Pattern:= 1;
     Range.Interior.ColorIndex:= 3; s:= Format('%s%d:%s%1:d',[getColChar(colStart + 1),
       rowStart,
       getColChar(colStart + 9)]);
     Range:= Sheet.Range[s];  //得到区域对象
     Range.Interior.Pattern:= 1;
     Range.Interior.ColorIndex:= 3; //表格标题
     s:= Format('%s%d:%s%1:d',[getColChar(colStart),
       rowStart - 2,
       getColChar(colStart + 9)]);
     Range:= Sheet.Range[s]; //合并单元格
     Range.Merge;
     Range.Select;
     //============================================
     //在当前选定单元格插入图片
     Sheet.Pictures.Insert(imgFile).Select;
     //移动图片
     eclApp.Selection.ShapeRange.IncrementLeft(180);
     eclApp.Selection.ShapeRange.IncrementTop(-30); rct.Left:= Range.Left;
     rct.Top:= Range.Top;
     rct.Right:= rct.Left + Range.Width;
     rct.Bottom:= rct.Top + Range.Height;
     //在指定坐标添加线条
     Sheet.Shapes.AddLine(rct.Left,rct.Top,rct.Right,rct.Top).Select;
     eclApp.Selection.ShapeRange.IncrementTop(18);
     eclApp.Selection.ShapeRange.Line.Weight:= 2.25;
     //在指定坐标添加文本框 并选定
     Sheet.Shapes.AddTextBox(1,rct.Right - 160,rct.Top,160,16).Select;
     eclApp.Selection.Characters.Text:= 'Design By Mostone.Jiang';
     //选中字符的起始位置与长度(长度省去则包含所有后面的字符)
     eclApp.Selection.Characters(11,13).Font.FontStyle:= '加粗 倾斜';
     eclApp.Selection.Characters(11,13).Font.Underline:= 1;
     eclApp.Selection.Characters(11,13).Font.colorIndex:= 46;
     eclApp.Selection.Font.Name:= 'Tahoma';
     eclApp.Selection.ShapeRange.Fill.Visible := 0;
     eclApp.Selection.ShapeRange.Line.Visible := 0;
    end;//程序启动时,创建一张图片,用来插入到生成的Excel表格中
    procedure TForm1.FormCreate(Sender: TObject);
    var
     d: Word;
     buf: array[0..255] of char;
    begin
     d:= GetTempPath(sizeof(buf),buf);
     if d > 0 then
     begin
       imgFile:= buf + 'imgTL.jpg';
       drawImg;   //调用自定义过程,绘制图形并保存到临时目录
                  //也可以考虑使用剪贴板
     end
     else messagebox(handle,'无法得到临时目录!\n你可以继续运行程序\n但是生成的Excel表格将没有图例','取临时文件出错',MB_OK  or MB_ICONINFORMATION);
    end;//随便画张图
    procedure TForm1.drawImg;
    var
     bitMap: TBitMap;
     w,h: Integer;
    begin
     W:= 268;
     H:= 50;
     bitMap:= TBitMap.Create;
     try
       bitMap.Width:= W;
       bitMap.Height:= H;
       with bitMap.Canvas do
       begin
         Font.Size:= 36;
         Font.Name:= '隶书';     Brush.Style:= bsClear;     TextOut(5,9, '九九乘法表');
         TextOut(5,5, '○○');
       end;
       bitMap.SaveToFile(imgFile);
     finally
       bitMap.Free;
     end;
    end;//返回列的字符表示符
    function TForm1.getColChar(col: Integer): string;
    const
     Ai = 65; //'A'的ASCII码值
    begin
     if col > 256 then
     begin
       //允许的最大列数
       raise ERangeError.CreateFmt('列(%d)超出允许的最大列数[256]', [col]);
       exit
     end;
     if col <= 26 then Result:= chr(Ai + col -1) else
       Result:= chr(Ai + col div 26 - 1) + chr(Ai + (col - 1) mod 26);
    end;end. 
      

  6.   

    //关闭程序时,释放Excel应用对象
    procedure TForm1.FormDestroy(Sender: TObject);
    begin
     //关闭eclApp
     //若不进行这一步,在任务管理器中会驻留Excel进程
     //但可以不必关闭Excel (eclApp.Quit),这样,操作员可以继续编辑或打印表格
     eclApp:= Unassigned;
    end;
     //合并单元格
     Range.Merge;
     Range.Select;
     
      

  7.   

    http://delphicode.yeah.net
    http://www.8860.net/delphicode
    叫源码仓库的网站太多了,准备改名了,呵呵,还没想好.
      

  8.   

    自己用的一个过程,把数据集导如导excel,adsdata可以换成任意你用导的数据集
    WriteExcel(AdsData:Tclientdataset; sName, Title: string);
    var
      ExcelApplication1: TExcelApplication;
      ExcelWorksheet1: TExcelWorksheet;
      ExcelWorkbook1: TExcelWorkbook;
      i, j: integer;
      filename: string;
    begin
      filename := concat(sName, '.xls');
      try
        ExcelApplication1 := TExcelApplication.Create(Application);
        ExcelWorksheet1 := TExcelWorksheet.Create(Application);
        ExcelWorkbook1 := TExcelWorkbook.Create(Application);
        ExcelApplication1.Connect;
      except
        Application.Messagebox('Excel没有安装!','Hello',MB_ICONERROR + mb_Ok);
        Abort;
       end;
       try
         ExcelApplication1.Workbooks.Add(EmptyParam, 0);
         ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
         ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _worksheet);
         AdsData.First;
        for j := 0 to AdsData.Fields.Count - 1 do
        begin
          ExcelWorksheet1.Cells.item[3, j + 1] := AdsData.Fields[j].DisplayLabel;
          ExcelWorksheet1.Cells.item[3, j + 1].font.size :='10';
        end;
        for i := 4 to AdsData.RecordCount + 3 do
        begin
          for j := 0 to AdsData.Fields.Count - 1 do
          begin
            ExcelWorksheet1.Cells.item[i, j + 1] :=
            AdsData.Fields[j].Asstring;
            ExcelWorksheet1.Cells.item[i, j + 1].font.size := '10';
          end;
          AdsData.Next;
      end;
      ExcelWorksheet1.Columns.AutoFit;
      ExcelWorksheet1.Cells.item[1, 2] := Title;
      ExcelWorksheet1.Cells.Item[1, 2].font.size :='14';
      ExcelWorksheet1.SaveAs(filename);
      Application.Messagebox(pchar('数据成功导出'+ filename),'信息化建设部',mb_Ok);
      finally
        ExcelApplication1.Disconnect;
        ExcelApplication1.Quit;
        ExcelApplication1.Free;
        ExcelWorksheet1.Free;
        ExcelWorkbook1.Free;
      end;
    end;
      

  9.   

    我也来灌灌~~
    调用Excel、Word用模板文件处理比较方便~~
    用户也可以自己设置~~
    想实现什么特效,先将记录的宏保存在模板文件中~~
    直接用WordApplication1.Run(MacroName)调用即可~~
      

  10.   

    请问:在设置Excel页面打印时,如何设置横向、纵向参数?
      

  11.   

    ExcelApp.ActiveSheet.PageSetup.Orientation:= 2;//设置为横向
    ExcelApp.ActiveSheet.PageSetup.Orientation:= 1;//设置为纵向
      

  12.   

    ExcelWorksheet1.Shapes.Item(i)EXCEL里的图片。
      

  13.   

    (二) 使用Delphi 控件方法
    是delphi7的吗?我用delphi6编译不了啊,变化好多。
      

  14.   

    感谢楼主!!
    请问有如何检测EXCEL表格中是否存在数据透视表或统计作图,表中统计的细节是否可以导出?
      

  15.   

    请问楼主如何把EXCEL表格中的数据导入到TStringGrid
      

  16.   

    Delphi中控制Excel技巧全演示:
    包括建book,建sheet,合计,启动宏,打印等技巧 
    delphi7,win2000中编译通过http://www.delphiun.com/dispdoc.asp?id=353
      

  17.   

    我这有原码.到绿盟编程找答案吗?快!特快,科技http://www.0mai.com/bbs/改版了上就有机会中奖。关有大量源程序下载!