如何取得word文档内指定单元格的每一行的内容(200分)

  • 主题发起人 主题发起人 jiashenglv
  • 开始时间 开始时间
J

jiashenglv

Unregistered / Unconfirmed
GUEST, unregistred user!
var
v_cell:variant;
begin
v_cell:=v_app.documents.item(1).tables.cell(1,1);
v_cell.width:=300;
v_cell.range.text:='如何取得word文档内指定单元格的每一行的内容...';
//假设长度约300字符,则该单元格肯定有多行,如何获得word对其进行自动分行后的行数和每一行的内容?请高手指点,分数不够可以再加。
 
给出word对段落或单元格换行的算法也可得分。
单元格的内容为汉字、数字、英语单词、空格和各种标点符号组成。假设单元格每行可以容纳42个字符(四号字),我只知道避免分割半个汉字的算法和防止句号、逗号在句首的算法,要列举其它各种算法肯定是太麻烦了。就是不知道单元格与此相关的属性(关键词)。
请高手指教。
 
经过不断尝试,我自己用了一个比较笨的方法解决:
将单元格的内容(删除控制字符)写入到一个RichEdit中(注意不能用Memo,Memo没有句首不能有逗号、句号,句末不能有左引号"等格式控制功能),
RichEdit1.ClientWidth:=cell(i,j).width/72*96
RichEidt1.Width:=RichEidt1.ClientWidth+4
//1英寸=72磅,屏幕分辨率为96PixelPerInch
//4为RichEdit1的边框宽度(可能大多数此类控件此值相同)
则可得到单元格内每一行的内容,与word自动换行的结果完全相同。
 
将单元格的内容(删除控制字符),那么就是纯文本了?如果单元格当中的字体不统一呢?我想你是否应该通过剪切板操作
RichEdit1.ClientWidth:=cell(i,j).width/72*96.确定这个72永远都是72吗?96和在显示属性更该的有没有关系?和文档的页面设置有没有关系?
RichEidt1.Width:=RichEidt1.ClientWidth+4.你干吗不设成无边框?
 
To zjan521,
问题的来源是这样的,我手上有几百个固定格式的word文档表格数据,现在要把它修改成另外的格式,且每一页标题和编号开始,只能有一个表格,表格增加一列,每个表格在固定的单元格增加说明.
1、将单元格的内容(删除控制字符),只保留纯文本了,重新写入表格时设置字体格式,重新设置后每个单元格只能有一行,如果某单元格内有n行,则将该单元格分成n个单元格(row),但是不能强行截断单词,还要符合书写标准,所以想把在新格式下word自动分行的每行数据读出来。
2、1英寸=72磅永远都是正确的
3、我的计算机屏幕分辨率为96,只有我自己要使用这个程序。
4、设置RichEdit1无边框,好建议。
 
后退
顶部