1. delphi读取word文档每一页的内容
uses ComObj,WordXp;
var wordapp, WordDoc, PageRange: Variant;
sContext: string;
i, nPageCounts, nStart, nEnd : Integer;
begin
wordapp := CreateOleObject('Word.Application');
try
wordapp.Visible := True;
if dlgOpen1.Execute = False then Exit;
WordDoc := wordapp.Documents.Open(dlgOPen1.FileName);
//文档总页数
nPageCounts := wordapp.Selection.Information[wdNumberOfPagesInDocument];
//如果只有一页 那么全选就OK了
if nPageCounts = 1 then
begin
wordapp.Selection.WholeStory;
mmo1.Lines.Add('=============第'+IntToStr(nPageCounts)+'页内容:===================');
mmo1.Lines.Add(wordapp.Selection.Text);
Exit;
end;
nStart := -1;
nEnd := -1;
//循环获取文档页中的内容
for i := 1 to nPageCounts do
begin
//定位到第i页
PageRange := wordapp.Selection.GoTo(wdGoToPage, wdGoToNext, IntToStr(i));
//如果第i页是最后一页 那么直接将光标移动到最后 并输出内容
if i = nPageCounts then
begin
wordapp.Selection.EndKey(wdStory,wdExtend);
sContext := WordApp.Selection.Range.Text;
mmo1.Lines.Add('=============第'+IntToStr(i)+'页内容:===================');
mmo1.Lines.Add(sContext);
Exit;
end;
//取第i页的页首位置作为开始位置
nStart := wordapp.Selection.Start;
//定位到i+1页
PageRange := wordapp.Selection.GoTo(wdGoToPage, wdGoToNext, IntToStr(i+1));
//取第i+1页的页首位置作为结束位置
nEnd := wordapp.Selection.Start;
//根据开始位置和结束位置确定文档选中的内容(第i页的内容)
WordDoc.Range(nStart,nEnd).Select;
sContext := WordDoc.Range.Text;
//输出内容
mmo1.Lines.Add('=============第'+IntToStr(i)+'页内容:===================');
mmo1.Lines.Add(sContext);
nStart := -1;
nEnd := -1;
end;
finally
wordapp.Quit;
end;
end;
昨天没有测试好 这个应该没有问题了吧 试一下吧
2. 怎么用delphi 7写程序在Word中生成表格。
1)在调用Documents集合的Add方法时,Template参数不再使用EmptyParam值,而是指定为“值班日志表.dot”,这样添加的文档将以“值班日志表.dot”为模板;
2)在插入相应的内容时,我使用的是一个比较笨的方法,但是对于这个不规则的表格来说却可能是最有效的方法:计算出该表格中共有多个个段落,然后通过语句在所有应插入内容的段落中插入内容。也懒得自己数了,定义了一个整型变量paraCount,将其赋值为WordDoc.Paragraphs.Count,最后用一个消息框显示出来,得到该表格有38个段落,最后注释掉以上代码:)
3)接下来的工作就是数数了,数到一个该插入内容的段落,就写一段代码插入相应的内容。比如:“值班时间”(表头)是第6段,接在后面该填入内容的空白段落就是第7段,于是写代码在第7段中插入实际内容。
最后,想说的是一个在操作Word 2000时很有用的帮助文件,VBAWRD9.CHM,里面详细介绍了Word 2000中使用的VBA,里面介绍了很多有用的对象、属性和方法,还有一些VB代码作为示例,很容易可以想到对应的Delphi代码。这个文件在Office 2000的安装盘里面可以找到,具体路径忘记了)
希望采纳,谢谢!
3. 为什么我用delphi调的word不能启动
用 delphi 调用 word ,通常是使用 OleCreateObject 函数,来启动 word 程序,如:
CreateOleObject('Word.Application')
此外,如果不需要考虑 word 控制等,只是单纯的专启动 word,可以使用属 ShellExecute 或是 WinExec 等函数启动程序。
如果 word 不能启动,建议检查:
1、 word 软件的安装情况,比如某些精简安装版的 word 可能由于注册表中某些登记不完整,会导致出错;运行的电脑系统中 word 是否能正确运行等等。
2、调用 word 的命令是否有误。