目前我想检查我的word文档的格式,可是内容太多,我想到了做一个检查工具,本人使用过Jbuild做过一个将Html转化jsp(当然是特定的环境下)的工具,可是那些都是文本字符的改动,而word自己加密,并且各种格式复杂,我不知道如何办。
比如:  
    1 我想检查第*行的字是*号 *类别的字体,不知怎么办。 
    2 再例如,一个表格,表格的标头背景,字体,
    3 标题 (自动换行的那种,)
有同样想法,和有此经验的人大家帮忙啊!
谢谢。 不然真的不知道撞到何时了。

解决方案 »

  1.   

    Delphi本身有控件,server页里
    google一下使用方法
      

  2.   

    unit Uword;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls, OleServer, Word97,ComObj, Buttons;type
      TForm1 = class(TForm)
        Button1: TButton;
        WordApplication: TWordApplication;
        WordDocument: TWordDocument;
        BitBtn1: TBitBtn;
        procedure Button1Click(Sender: TObject);
        procedure BitBtn1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
    var
        Template,NewTemplate,ItemIndex:OleVariant;
        start,stop : olevariant ;
        myRange:range;
    Begin
        Template := EmptyParam;
        NewTemplate :=  True;
        ItemIndex := 1;
        start := 3 ;
        stop := 3 ;
        try
          Wordapplication.Connect;
        except
          MessageDlg('Word may not be installed', mtError, [mbOk], 0);
          Abort;
        end;
        Wordapplication.Visible := True;
        WordApplication.Caption := 'Delphi automation';
        {Create new document}
        Template := EmptyParam;
        NewTemplate := False;
          WordApplication.Documents.Add(Template, NewTemplate);
          WordDocument.ConnectTo(WordApplication.Documents.Item(ItemIndex));
          WordDocument.Range.InsertAfter('报表'+#13);
          WordDocument.Range.InsertAfter(#13);
        //-- 指定插入表的起始处 -------- //
          myRange := WordDocument.Range(start,stop) ;
          WordDocument.Tables.Add(myRange,11,2);
          wordDocument.Tables.Item(1).Columns.Item(1).Width :=20; //改变表格列宽
          WordDocument.Range.InsertAfter('正文一:');
    end;procedure TForm1.BitBtn1Click(Sender: TObject);
    var 
        Word2000: Variant; 
    begin 
        try 
          Word2000:=CreateOleObject('word.basic'); 
          Word2000.FileNew; 
          Word2000.font('宋体'); //设置字体 
          Word2000.FontSize(14); //设置字号 
          Word2000.CenterPara; //居中        
          Word2000.Insert( '居中'+#13); 
          Word2000.LeftPara; //左对齐 
          Word2000.Insert( '左对齐'+#13); 
          Word2000.RightPara; //右对齐 
          Word2000.Insert( '右对齐'+#13); 
          Word2000.AppShow; //显示应用程序 
        except 
            showmessage('运行 Microsoft Word 失败!'); 
        end
    end;end.  
      

  3.   

    楼上的讲的很好啊!
    能有联系方法吗?
    看来你是这方面有经验的阿,能有联系方法吗?
    估计我以后的问题很多,还要打扰阿!
    能有联系方法吗?
    我的是
    [email protected]
    做这个东西纯属爱好,请指教了!
      

  4.   

    我现在举个例子:
    你看如何解决:
    比如:    
    ****
    1.***
    2.***
    3.****
    这样的自动计数的格式如何获得,标题* 大小*?
    还有word里添加的宏如何修改,和读取判断。
    还有上边比如已经插入了表格,和文字,如何读取判断
    呵呵,看来我很蠢了点, 主要是遇到高手不容易,每个人有各自的专阿,入个门有高手指点比较快啊。
    麻烦