谁能告诉我怎样控制这样的Word表格? ( 积分: 300 )

  • 主题发起人 主题发起人 lanyun2
  • 开始时间 开始时间
L

lanyun2

Unregistered / Unconfirmed
GUEST, unregistred user!
下边是我读Word某表格的宽,高度的代码
(word2003 简体中文)
//表格是我加到模板中的表格,各行高度没有设置,但由于内容不同,高度也有变化
MyWord := CreateOleObject('Word.Application');
vTable := MyWord.ActiveDocument.Tables.Item(1);

for i := 1 to 9 do
begin
VTable.Cell(i, 1).Select;
MyWord.Selection.Rows.HeightRule := wdRowHeightAtLeast;
//这里改成wdRowHeightExactly也不成,愁死人啦 !
Wid := MyWord.Selection.Cells.PreferredWidth;
Hei := MyWord.Selection.rows.Height;
//vTable.Rows.Item(i).Height; 这样也不行:(
s := Format('%s%8.2f%s%8.2f', ['Width', Wid, 'Height:', Hei]);
Showmessage(s);
end;
其中,表格的前9行的高度各不相同,但实际读出来的却都是12,实际上我读到的高度
全都是12,设置这个参数倒是能够成功;
之前也问过这个问题,但未得到答案.
(以前的问题ID:http://www.delphibbs.com/delphibbs/dispq.asp?lid=3534403)
如果有人能够帮我解决这个问题,500分全是您的了!
 
没有人来吗?再加分也可以呀
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1990538
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3501097
http://www.delphibbs.com/delphibbs/dispq.asp?lid=115881
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2203481
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1248778
 
for i := 1 to 9 do
begin
VTable.Rows.Item(i).Select;//看清楚这一行,要选行不能选单元格
// VTable.Cell(i, 1).Select;
MyWord.Selection.Rows.HeightRule := wdRowHeightAtLeast;
//这里改成wdRowHeightExactly也不成,愁死人啦 !
Wid := MyWord.Selection.Cells.PreferredWidth;
// Hei := MyWord.Selection.rows.Height;//这两行都行
Hei :=vTable.Rows.Item(i).Height; //这样也行:-)
s := Format('%s%8.2f%s%8.2f', ['Width', Wid, 'Height:', Hei]);
Showmessage(s);
end;
 
To newsmile:
我试验了一下,仍然是只能读出12.00这个数据 ,虽然表格各行高度不同 。
我的环境是这样的:
在一个模板文件test.dot中添加了表格,然后在新生成的Doc文件中添加模板( MyWord.Documents.Add(TemplateName);)
读取Doc中表格各行的高度,现在怎样都读不到不同的数据,但奇怪的是如果我手工更改
了表格中某行的高度,再次读的话就能读出来:《《
大哥再帮帮忙吧 !
 
行高是要设置的,12是缺省值,请检查您的模板是否有问题。我的程序是经过了测试的,应该没问题。如果不设置行高而是用字号变化来改变行高,这时看起来行高是变化了,但其值是不会改变的。
 
刚刚认真地看了您的提问,原来您没有设置过行高啊,这样用我的办法读出来的值确实应该是12,您要得到正确的行高值要配合字号及单元格中的行数、行距、段前段后间距了。
 
我想您可以用程序显式的在模板中设置行高再试试(三个值都试试),或者根据实际情况换个思路求行高。
 
TO NewSmile :
大哥,问题就在于这个表格是别人设置的,我只是拿来读和填充。
极愿听听您的《配合字号及单元格中的行数、行距、段前段后间距》解决方法,
另外,请您到http://www.delphibbs.com/delphibbs/dispq.asp?lid=3534403)
先拿200分,如果本题最终由别人回答。我愿另外开题给分,500分总值不变,多谢您
的关心,您再帮帮忙吧!!
 
“读和填充”要行高干啥?过两天有空我看能不能解决这个问题,您自己也多考虑考虑。
 
后退
顶部