关于WORD的控制问题,重提!(100分)

  • 主题发起人 主题发起人 only you
  • 开始时间 开始时间
O

only you

Unregistered / Unconfirmed
GUEST, unregistred user!
谁能给出D5下关于控制WORD文档的详细使用方法,例如如何编排文本格式,如何在表格中
插入数据,如何控制表格、文字属性等等!关键是如何画任意大小的表格和在任意位置文
本的插入!因为此问题讨论的不多或者答案都不太详细和针对性,所以我先象征性的给50
分,剩余的200分给第一个完全解答词类此类问题的人!D4下用OLE对象的也可以!

 
我的这个问题就这么难吗?这是否令我太失望了!
 
有人回答吗?
 
不给钱不干
 
如果答出来我一定给钱,看来这回我的钱又白费了!
好吧,介绍一两本关于这方面的书也可以得到200分!(必须详细,可以是其它语言)
谢谢!
 
word2000中有vba的帮助,别去卖书,都是骗人的,我买了本WORD 编程的书,花了我100多银子,
后来发现,就是word2000中有vba的帮助,晕倒-----!!!!
 
再来骗点分 :-) 其实我以前的贴子全都讲过了。程序也是至少第二次贴。
在填空时,用在 word 文档中的书签来定位;表格则是按表号、行列定位。
//对 Word 的表格进行的操作
//把数据表的内容写入 Word Table
//
unit HandelWord;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,ComObj,
StdCtrls, Db, Grids, DBGrids, DBTables;

type
TForm1 = class(TForm)
Button1: TButton;
Table1: TTable;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure FillCell(i,j: byte; wTable: Variant; FieldName: String);
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses word97;

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var WordApp,MyDoc,wTable: OLEVariant;
FileName: string;
i: integer;
procedure FillRow(wTable: OLEVariant; Row,StartColumn: Byte; ss: array of String);
var j: word;
begin
for j := Low(ss) to High(ss) do begin
wTable.Cell(Row,j+StartColumn).Range.Text := ss[j];
end;
end;


begin
FileName := ExtractFileDir(Application.ExeName) + '/test1.dot';
if not FileExists(FileName) then
raise Exception.Create('找不到模板!');
try
WordApp := CreateOleObject('Word.Application');
MyDoc := CreateOleObject('Word.Document');
except
Raise Exception.Create('无法打开Word,请确认已安装Word。');
end;

WordApp.Visible := true;
MyDoc := WordApp.Documents.Add(FileName,false);

MyDoc.BookMarks.Item('表名1').Select;
WordApp.Selection.Text := 'Animals';
wTable := MyDoc.Tables.Item(1);
table1.First;
for i := 2 to 4 do begin
if not Table1.Eof then begin
FillCell(i,1,wtable,'Name');
FillCell(i,2,wtable,'Size');
FillCell(i,3,wtable,'Area');
Table1.Next
end else Break
end;

wTable := MyDoc.Tables.Item(2);
table1.First;
for i := 1 to 3 do
if not table1.Eof then begin
FillRow(wTable,i,2,[table1.fieldbyName('Name').AsString,
table1.FieldByName('Size').AsString,
table1.FieldByName('Area').AsString]);
table1.Next
end;

MyDoc.Tables.Add(MyDoc.Bookmarks.Item('表格3').Range,2,5);

//操作对齐属性
MyDoc.Paragraphs.Item(1).Alignment := wdAlignParagraphRight;
//表格列宽
Mydoc.Tables.Item(2).Columns.Item(2).Width := 300;

end;

procedure TForm1.FillCell(i, j: byte; wTable: Variant; FieldName: String);
begin
wTable.Cell(i,j).Range.Text := table1.FieldByName(FieldName).AsString
end;



end.
 
好,我试试!如果行,我决不食言!不过你至少可得50分!
 
你的程序通不过,系统老是告诉我“集合对象不存在!”
 
u can read the help file - "vbawrd.help" in office directory.
this file appears when u install office completely, or u will find it
in office install cd.
 
作表格最好用Excel,OLE控制EXCEL可能比控制WORD简单一些,你试试看:)
 
如果给出excel的示例也行
 
>>>如果给出excel的示例也行
我不信你不会,检索一下.
我用的是D3的.不贴了.
 
拜托!我的要求是在任意大小的表格中套打数据,而且还有大量的文本,不是简单的数据
罗列,单纯插入点数据我当然知道,但是资料少的可怜,看源文件又费时费力!真不知道
怎么办好了!有没有用WORD作过工程的!请给点资料好吗!
 
我的程序是个示例程序,并不难,有点耐心,一会就看完了。粘到你的程序里,立刻就可以
见到结果。如果你连这点耐心都没有,不要做程序了。
 
》Crab
1.你的程序我就是直接粘贴在程序里,异常类型我已经写出来了!是谁没有耐心?
2.希望你以后在说话前仔细看别人的话,不要随便给别人扣帽子!
 
多人接受答案了。
 
后退
顶部