Word 文档格式识别(280分)

  • 主题发起人 主题发起人 wangkai7
  • 开始时间 开始时间
W

wangkai7

Unregistered / Unconfirmed
GUEST, unregistred user!
[:(!]
[h1][red]Word 文档格式识别[/red][/h1]​

请教各位高手:
在Delphi程序中,如何判断Word文档的格式?如获得第一段的文字字体、字号、行间距等;
表格的行数、列数、行高、列宽等;艺术字的形式......
 
Paragraphs........
 
var DocIndex,ParaIndex,ShapeIndex:olevariant;
i,paracount:integer;
rang:range;//区域对象
para:paragraph;//段落对象
tbl:table;//表格对象
sp:shape; //shape对象


para:=WordApplication1.Documents.Item(DocIndex).Paragraphs.Item(ParaIndex);//获得段落,一个硬回车表示一个段落。
tbl:=WordApplication1.Documents.Item(DocIndex).Tables.Item(1);//获得文档内第一个表格
tbl:=rang.Tables.Item(1);//获得区域内第一个表格
sp:=WordApplication1.Documents.Item(DocIndex).Shapes.Item(ShapeIndex);//获得一个shape对象

para.LineSpacing //段落的行距
rang:=para.Range; //该段落的range;
rang.Text //段落文本
rang.Font //段落字体,如果range内字体不统一则无法取得
rang.Characters.Count //段落内字体个数
rang.Characters.Item(1).font //段落内第一个字符的字体
rang.Tables.Count //所选区域内表格数,如果为0表示该段不在表内,否则在表内。
tbl.Rows.Count //表格行数
tbl.Columns.Count //表格列数
tbl.Rows.Item(1).Height //表格行高
tbl.Columns.Item(1).width //表格列宽
sp.Type_ //shape的类型,15表示艺术字,17表文本框
sp.height //shape的高度
sp.width //shape的宽
sp.TextEffect.Text //艺术字的文字
sp.TextEffect.FontSize //艺术字字体大小
sp.TextEffect.FontName //字体名
sp.TextFrame.TextRange.Text //文本框的文字
......




 
rang:=para.Range; //获得段落区域
很多对象都提供区域

 
to zhangshunzhong
把你的可行程序贴出来,我给你分!
 
我也作这方面的东西,讨论一下吧
sunhongweisun@163.com
 
to tianrei:你要完成什么样的功能
 
 
to zhangshunzhong
在硬盘上存放有出一个WORD文件,现在写程序,读出这个WORD文件的一些信息
如首行缩进,字体格式(I,B,U),颜色,某段的行间具,剪贴画的大小,位置
环绕格式……等等。
总之,能把WORD文件的结构读出来最好。(WORD文件结构微软现在公布没?)
还有,能读EXCEL文件更好。
我个人看资料感觉要用VBA才好操作,DELPHI可能能力有限!
高手指教!——谢谢!
 
关注!前段时间想到一个问题,就是如何判断 word 文档中的大纲的上下级别,并把大纲转换成目录,不知道怎么使用程序实现?
 
to zhangshunzhong:
请贴出具体可行程序。
或:
Emailto:wangkai@tjjy.net
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2604145
这里有200分
 
zhangshunzhong已经说得很清楚了,还要什么样的代码?
 
to zjan521:
在下资质驽钝,阁下既然看懂了,就请帖出可行代码,指点一二!
这样吧,我硬盘上有一个WORD文件,设置了一些格式,你写一个程序给读出来!
把这个程序代码帖出来怎么样!!!
 
贴子到底是谁发的,都不知道谁来给分
 
to zhangshunzhong:
para:=WordApplication1.Documents.Item(DocIndex).Paragraphs.Item(ParaIndex);//获得段落,一个硬回车表示一个段落。
其中,DocIndex,ParaIndex...类型为olevariant,如何赋初值(自动获取?)
希望能够解答。
 
用delphi自带控件不方便的就是这点,要定义很多olevariant
var DocIndex,ParaIndex:olevariant;
i:integer;

DocIndex:=1;
for i:=1 to WordApplication1.Documents.Item(DocIndex).Paragraphs.count do
begin
PranIndex:=i;
....................
end;
 

Similar threads

回复
0
查看
1K
不得闲
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
后退
顶部