首页 | 社区 | 博客 | 招聘 | 文章 | 新闻 | 下载 | 读书 | 代码
亲,您未登录哦! 登录 | 注册

用Delphi合并Word表格中单元格

打印文章

分享到:
//合并Word 表格中单元格
procedure mergeWordCell;
var WordApp: TWordApplication;
    WordDoc: TWordDocument;
    DocInx,oFileName,CfCversions,oReadOnly,AddToRctFiles,PswDocument,
    PswTemplate,oRevert,WPswDocument,WPswTemplate,oFormat: OleVariant;
    i,iRow,iCol:integer;
    myCell:Cell;
    myRow:Row;
begin
  memo1.Lines.Clear ;

    // ===== 创建对象 =====
    if not Assigned(WordApp) then                          
    begin
      WordApp:= TWordApplication.Create(nil);
      WordApp.Visible := false;
    end;
    if not Assigned(WordDoc) then
      WordDoc:= TWordDocument.Create(nil);
  try
    DocInx:=1;
    oFileName := 'd:\test.doc';
    oReadOnly:=true;
    CfCversions := EmptyParam;
    AddToRctFiles:= EmptyParam;
    PswDocument:= EmptyParam;
    PswTemplate:= EmptyParam;
    oRevert:= EmptyParam;
    WPswDocument:= EmptyParam;
    WPswTemplate:= EmptyParam;
    oFormat:= EmptyParam;     
    // ===== 打开文件 =====                         
    WordApp.Documents.open(oFileName,CfCversions,oReadOnly,AddToRctFiles,
       PswDocument,PswTemplate,oRevert,WPswDocument,WPswTemplate,oFormat);
    // ===== 关联文件 =====
    WordDoc.ConnectTo(WordApp.Documents.Item(DocInx));


    //合并第一、二列
        iStart:=WordDoc.Tables.Item(i).Cell(1,1).Range.Start;
        myCol:= WordDoc.Tables.Item(i).Columns.Item(2);
        iEnd:=myCol.Cells.Item(myCol.Cells.Count).Range.End_;
        myRange:=WordDoc.Range;
        myRange.Start:=iStart;
        myRange.End_ :=iEnd;
        myRange.Cells.Merge;

  finally
    if Assigned(WordDoc) then     // ===== 关闭文件 =====
    begin
      WordDoc.Close;
      WordDoc.Disconnect;
      WordDoc.Destroy;
      WordDoc := nil;
    end;
    if Assigned(WordApp) then      // ===== 关闭Word =====
    begin
      WordApp.Quit;
      WordApp.Disconnect;
      WordApp.Destroy;
      WordApp := nil;
    end;
  end;
end;

本栏文章均来自于互联网,版权归原作者和各发布网站所有,本站收集这些文章仅供学习参考之用。任何人都不能将这些文章用于商业或者其他目的。( Pfan.cn )

编程爱好者论坛

本栏最新文章