急需word 各级标题的生成 并根据标题生成一个索引目录的方法

love_hate_i 2009-05-26 12:30:27
加精
利用TWordApplication,TWordDocument方式在word中控制各级标题的生成 并根据标题生成一个索引目录

环境:bcb2009
...全文
3414 52 打赏 收藏 转发到动态 举报
写回复
用AI写文章
52 条回复
切换为时间正序
请发表友善的回复…
发表回复
cumtlaoliao 2012-07-14
  • 打赏
  • 举报
回复
求回复啊!!!
cumtlaoliao 2012-06-29
  • 打赏
  • 举报
回复
达人妖哥 您能帮我把
With ActiveDocument
.TablesOfContents.Add Range:=Selection.Range, RightAlignPageNumbers:= _
True, UseHeadingStyles:=True, UpperHeadingLevel:=1, _
LowerHeadingLevel:=3, IncludePageNumbers:=True, AddedStyles:="", _
UseHyperlinks:=False, HidePageNumbersInWeb:=True, UseOutlineLevels:= _
True
.TablesOfContents(1).TabLeader = wdTabLeaderDots
.TablesOfContents.Format = wdIndexIndent
End With
翻译成VB的形式吗 谢谢 在线等
love_hate_i 2009-06-03
  • 打赏
  • 举报
回复
谢谢哦……妖哥!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
安馨安旭 2009-06-03
  • 打赏
  • 举报
回复
[Quote=引用 35 楼 truelove7283159 的回复:]
要是0ffice2007以后是openxml的.
文件格式是一个PackUri也就是一个zip格式的uri(url)
要是你着急了,可以直接去操作哪个XML,然后在zip一下就是
word文件了.
[/Quote]

2007还没试过呢,听你这么说2007以后就不需要用ole了,先记录一下,改天查资料学学2007去。
ccrun.com 2009-06-03
  • 打赏
  • 举报
回复
OLE专业户来也!!!
楼主等辛苦了吧,呵呵,为你调试这段代码,花了我太多时间了。
#include "Word_2K_SRVR.h"

#pragma link "$(BDS)\\lib\\release\\bcboffice2k.lib"

void __fastcall TForm6::Button1Click(TObject *Sender)
{
TWordApplication *wdApp = new TWordApplication(this);
TWordDocument *wdDoc = new TWordDocument(this);

wdApp->Connect();

// 为调试方便,将WORD界面可视
wdApp->set_Visible(true);

// 建立一个新文档
wdApp->Documents->Add();
wdDoc->ConnectTo(wdApp->get_ActiveDocument());

// 添加一段(第一级标题)
VARIANT vHeadingStyle1;
vHeadingStyle1.vt = VT_INT;
vHeadingStyle1.intVal = 0xFFFFFFFE; // wdStyleHeading1 = 0xFFFFFFFE,

wdDoc->Paragraphs->Add();
wdDoc->Paragraphs->Item(1)->Range->ParagraphFormat->Space15();
wdDoc->Paragraphs->Item(1)->Range->set_Text(WideString("(第一级标题)").c_bstr());
wdDoc->Paragraphs->Item(1)->set_Style(&vHeadingStyle1);
wdDoc->Paragraphs->Item(1)->OutlineLevel = WdOutlineLevel(1);
wdDoc->Paragraphs->Item(1)->Alignment = WdParagraphAlignment(0);

// 添加二段(第二级标题)
VARIANT vHeadingStyle2;
vHeadingStyle2.vt = VT_INT;
vHeadingStyle2.intVal = 0xFFFFFFFD; // wdStyleHeading2 = 0xFFFFFFFD,

wdDoc->Paragraphs->Add();
wdDoc->Paragraphs->Item(2)->Range->ParagraphFormat->Space15();
wdDoc->Paragraphs->Item(2)->Range->set_Text(WideString("(第二级标题)").c_bstr());
wdDoc->Paragraphs->Item(2)->set_Style(&vHeadingStyle2);
wdDoc->Paragraphs->Item(2)->OutlineLevel = WdOutlineLevel(1);
wdDoc->Paragraphs->Item(2)->Alignment = WdParagraphAlignment(0);

// 添加三段(第三级标题)
VARIANT vHeadingStyle3;
vHeadingStyle3.vt = VT_INT;
vHeadingStyle3.intVal = 0xFFFFFFFC; // wdStyleHeading3 = 0xFFFFFFFC,

wdDoc->Paragraphs->Add();
wdDoc->Paragraphs->Item(3)->Range->ParagraphFormat->Space15();
wdDoc->Paragraphs->Item(3)->Range->set_Text(WideString("(第三级标题)").c_bstr());
wdDoc->Paragraphs->Item(3)->set_Style(&vHeadingStyle3);
wdDoc->Paragraphs->Item(3)->OutlineLevel = WdOutlineLevel(1);
wdDoc->Paragraphs->Item(3)->Alignment = WdParagraphAlignment(0);

wdDoc->TablesOfContents->Add(wdApp->Selection->Range);

wdDoc->TablesOfContents->Item(1)->TabLeader = WdTabLeader(1);
wdDoc->TablesOfContents->Format = WdTocFormat(0);

// ...
// 后续代码自己添加
// ...
}
love_hate_i 2009-05-31
  • 打赏
  • 举报
回复
谢谢妖哥,继续期待中………………
ccrun.com 2009-05-30
  • 打赏
  • 举报
回复
晚上我再继续调试一下,代码基本搞定了,只是效果上还略有差异。再耐心等等。
love_hate_i 2009-05-29
  • 打赏
  • 举报
回复
妖哥,分数确实不值钱哈,不过这是我唯一能感谢你的方式。
zhangyinkai2008 2009-05-29
  • 打赏
  • 举报
回复
最近正在VS2005平台下用C#操作Word报表的(.doc格式的),是采用office中com组件,兄弟在网上查了好长时间都没有找到系统一点的资料,正郁闷呢~~如果有哪位大哥有点话,能否帮兄弟一下,或者有介绍详细点的网站也可以,谢谢啊 顺便把邮箱留一下:tonyseven_2008@163.com 不胜感激!
jzaleph 2009-05-29
  • 打赏
  • 举报
回复
学习学习~~
GWR123 2009-05-28
  • 打赏
  • 举报
回复
非常感谢您们之间的提问、相互帮助、解答,对我来说因为对编码外行,还是慢慢了解一些。
如果能将其制作出相应的小软件开发,对大多数不熟悉编码的人更有收益!也是对word文件的应用更为广阔!
liyoubaidu 2009-05-28
  • 打赏
  • 举报
回复
up
晨钟暮鼓 2009-05-28
  • 打赏
  • 举报
回复
进来看看
cs315315 2009-05-28
  • 打赏
  • 举报
回复
看了以上各位,才知道,用了这么多年,我还是不会用电脑,呜呜
truelove7283159 2009-05-28
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 ccrun 的回复:]
分只是浮云。用Office组件操作Word真是痛苦呀。代码还在紧张调试中。
[/Quote]

哈哈,分其实没什么的.有技术问题来探讨是不错的.
要是0ffice2007以后是openxml的.
文件格式是一个PackUri也就是一个zip格式的uri(url)
要是你着急了,可以直接去操作哪个XML,然后在zip一下就是
word文件了.
bubsy 2009-05-28
  • 打赏
  • 举报
回复
up
nettman 2009-05-28
  • 打赏
  • 举报
回复
关注!
rys336 2009-05-28
  • 打赏
  • 举报
回复
xuexi
似水流年love 2009-05-28
  • 打赏
  • 举报
回复
我帮不了你,多查查资料吧
songguozhi 2009-05-27
  • 打赏
  • 举报
回复
支持妖哥………………………………
加载更多回复(30)

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧