分享
 
 
 

Delphi 与 Word_VBA

王朝delphi·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

'插入表格

Sub setTable()

Set myRange = ActiveDocument.Range(Start:=2, End:=2)

ActiveDocument.Tables.Add Range:=myRange, NumRows:=3, NumColumns:=4

End Sub

'取得Word常规字符串

Sub getText()

Set myRange = ActiveDocument.Range(Start:=0, End:=4)

MsgBox myRange.Text

End Sub

'取得Word 表格中的数据

Sub getTableCellText()

Dim s

For i = 1 To ActiveDocument.Tables.Count

For iRow = 1 To ActiveDocument.Tables(i).Rows.Count

For icol = 1 To ActiveDocument.Tables(i).Columns.Count

Set myCell = ActiveDocument.Tables(i).Cell(Row:=iRow, Column:=icol)

s = s & Mid(myCell.Range.Text, 1, Len(myCell.Range.Text) - 2)

Next icol

Next iRow

Next i

MsgBox s

End Sub

Cell的属性RowIndex和ColIndex来取得某格单元格在表中的行列号

========================== Delphi ===================================

WordApp: TWordApplication;

WordDoc: TWordDocument;

DocInx,oFileName,CfCversions,oReadOnly,AddToRctFiles,PswDocument,

PswTemplate,oRevert,WPswDocument,WPswTemplate,oFormat: OleVariant;

myRange:Range;

myCell:Cell;

myRow:Row; myCol:Column;

if not Assigned(WordApp) then // ===== 创建对象 =====

begin

WordApp:= TWordApplication.Create(nil);

WordApp.Visible := false;

end;

if not Assigned(WordDoc) then

begin

WordDoc:= TWordDocument.Create(nil);

end;

DocInx:=1;

oFileName := InFile;

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)); // ===== 关联文件 =====

//取整个文本的字符内容,包含表格

s := WordDoc.Range.text;

//取 1 -- 4 位的字符 ,包含表格

myRange:=WordDoc.Range;

myRange.Start:=0;

myRange.End_ :=4;

//方法(1)==> 规则表

For i := 1 To WordDoc.Tables.Count do

begin

For iRow := 1 To WordDoc.Tables.Item(i).Rows.Count do //第 i 个表 iRow行

begin

For icol := 1 To WordDoc.Tables.Item(i).Columns.Count do //第 iCol列

begin

myCell:=WordDoc.Tables.Item(i).Cell(iRow,icol);

memo1.Lines.add(myCell.Range.Text);

end;

end;

end;

//方法(2)==> 不规则表:只有横向合并时

For i := 1 To WordDoc.Tables.Count do //第 i 个表

begin

For iRow := 1 To WordDoc.Tables.Item(i).Rows.Count do

begin

myRow:=WordDoc.Tables.Item(i).Rows.Item(iRow); //第 iRow 行

For icol := 1 To myRow.Cells.Count do //第 iCol列

begin

myCell:= myRow.Cells.Item(iCol) ;

memo1.Lines.add(myCell.Range.Text);

end;

end;

end;

//方法(3)==> 不规则:横向、纵向合并时

For i := 1 To WordDoc.Tables.Count do

begin

for j := 1 To WordDoc.Tables.Item(i).Range.Cells.Count do

begin

myCell := WordDoc.Tables.Item(i).Range.Cells.Item(j);

memo1.Lines.add(myCell.Range.Text);

end;

end;

//合并第一、二列

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;

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;

/////////////////////////////

For i := 1 To WordDoc.Tables.Count do //第 i 个表

begin

For iRow := 1 To WordDoc.Tables.Item(i).Rows.Count do

for iCol:=1 to WordDoc.Tables.Item(i).Columns.Count do

myCell:=WordDoc.Tables.Item(i).Cell(iRow,iCol); //取[iRow,iCol]列值

end;

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有