用Delphi控制Word插入表格 我在Delphi中调用Word添加表格后,就不能在表格下面添加别的文字和表格了,因为添加的文字始终显示在表格的第一个单元格中!我想在表格后继续添加文字和表格,请高手帮忙 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不知道你是不是这样写的,我这样写OK的varwdPar,wdRange:OleVariant;//表格wdPar:=FWord.ActiveDocument.Paragraphs.Add;wdRange:=wdPar.Range;wdRange := FWord.ActiveDocument.Content;wdRange.Collapse(wdCollapseEnd);FDOC.Tables.Add(wdRange,2,5);FDOC.Tables.Item(1).Cell(1,1).Range.Text:=' ...... '; wdRange.Collapse(wdCollapseEnd); 这句编译有错误,说wdCollapseEnd未定义 procedure TMotorReportFrame.Button2Click(Sender: TObject);var WordApp, NewDoc, WordTable: OLEVariant; iRows, iCols, iGridRows, jGridCols: Integer; wdRange:OleVariant;begin try WordApp := CreateOleObject('Word.Application'); except // Error... Exit; end; WordApp.Visible := True; NewDoc := WordApp.Documents.Add; iCols := AdvStringGrid2.ColCount; iRows := AdvStringGrid2.RowCount; WordApp.Selection.Range.InsertAfter(Text:='电机基本信息表'); WordApp.Selection.Range.InsertParagraphAfter; WordTable := NewDoc.Tables.Add(WordApp.Selection.Range, iRows, iCols); for iGridRows := 1 to iRows do for jGridCols := 1 to iCols do WordTable.Cell(iGridRows, jGridCols).Range.Text := AdvStringGrid2.Cells[jGridCols - 1, iGridRows - 1]; WordApp.Selection.Range.InsertParagraphAfter; iCols := AdvStringGrid1.ColCount; iRows := AdvStringGrid1.RowCount; WordTable := NewDoc.Tables.Add(WordApp.Selection.Range, iRows, iCols); for iGridRows := 1 to iRows do for jGridCols := 1 to iCols do WordTable.Cell(iGridRows, jGridCols).Range.Text := AdvStringGrid1.Cells[jGridCols - 1, iGridRows - 1]; NewDoc.saveas('d:\a.doc'); WordApp := Unassigned; NewDoc := Unassigned; WordTable := Unassigned;end;我是这样写的,希望插入两个表格,麻烦高手指点一下 写了个例子你看下,我这里可以的uses comobj,word2000;procedure TForm1.Button1Click(Sender: TObject);var FWord :Variant; FDoc :Variant; wdPar,wdRange:OleVariant;begin FWord := CreateOleObject('Word.Application'); FWord.Visible := True; FDOC :=FWord.Documents.Add; wdPar:=FWord.ActiveDocument.Paragraphs.Add; wdRange:=wdPar.Range; wdRange := FWord.ActiveDocument.Content; wdRange.Collapse(wdCollapseEnd); FDOC.Tables.Add(wdRange,2,5); FDOC.Tables.Item(1).Cell(1,1).Range.Text:= '111' ;end; 如何得到磁盘分区的数量,抢分题! 请教:复杂变长字符串的截取 0怪哉,DLL中不能包含多个窗体 请问如何知道现在指针在数据表的第几行? 怎样使窗体拉小时出现滚动条? 在pdm模型中,怎样才能使Table的Columns页上的Name不唯一? 菜鸟问题,请帮忙 如何实现消息系统? 如何在dbgrid中选中多行记录? 有关dbgrid问题,比较麻烦 在线求助啊,简单问题 delphi7 variant变量操作excel出现的内存问题。
var
wdPar,wdRange:OleVariant;
//表格
wdPar:=FWord.ActiveDocument.Paragraphs.Add;
wdRange:=wdPar.Range;
wdRange := FWord.ActiveDocument.Content;
wdRange.Collapse(wdCollapseEnd);
FDOC.Tables.Add(wdRange,2,5);
FDOC.Tables.Item(1).Cell(1,1).Range.Text:=' ...... ';
这句编译有错误,说wdCollapseEnd未定义
var
WordApp, NewDoc, WordTable: OLEVariant;
iRows, iCols, iGridRows, jGridCols: Integer;
wdRange:OleVariant;
begin
try
WordApp := CreateOleObject('Word.Application');
except
// Error...
Exit;
end;
WordApp.Visible := True;
NewDoc := WordApp.Documents.Add; iCols := AdvStringGrid2.ColCount;
iRows := AdvStringGrid2.RowCount;
WordApp.Selection.Range.InsertAfter(Text:='电机基本信息表');
WordApp.Selection.Range.InsertParagraphAfter; WordTable := NewDoc.Tables.Add(WordApp.Selection.Range, iRows, iCols);
for iGridRows := 1 to iRows do
for jGridCols := 1 to iCols do
WordTable.Cell(iGridRows, jGridCols).Range.Text :=
AdvStringGrid2.Cells[jGridCols - 1, iGridRows - 1]; WordApp.Selection.Range.InsertParagraphAfter;
iCols := AdvStringGrid1.ColCount;
iRows := AdvStringGrid1.RowCount; WordTable := NewDoc.Tables.Add(WordApp.Selection.Range, iRows, iCols);
for iGridRows := 1 to iRows do
for jGridCols := 1 to iCols do
WordTable.Cell(iGridRows, jGridCols).Range.Text :=
AdvStringGrid1.Cells[jGridCols - 1, iGridRows - 1]; NewDoc.saveas('d:\a.doc'); WordApp := Unassigned;
NewDoc := Unassigned;
WordTable := Unassigned;
end;我是这样写的,希望插入两个表格,麻烦高手指点一下
procedure TForm1.Button1Click(Sender: TObject);
var
FWord :Variant;
FDoc :Variant;
wdPar,wdRange:OleVariant;
begin
FWord := CreateOleObject('Word.Application');
FWord.Visible := True;
FDOC :=FWord.Documents.Add;
wdPar:=FWord.ActiveDocument.Paragraphs.Add;
wdRange:=wdPar.Range;
wdRange := FWord.ActiveDocument.Content;
wdRange.Collapse(wdCollapseEnd);
FDOC.Tables.Add(wdRange,2,5);
FDOC.Tables.Item(1).Cell(1,1).Range.Text:= '111' ;
end;