急需bcb6操作word文档的例子

xabcxyz 2009-09-26 11:09:35
我照着老妖的方法试了,现在有一个新的需求无法实现

用自定义模板打开新文档,然后添加表格

自定义模板存在数据库中,现假设在可执行程序的当前目录有 mb.dot 文件。
...全文
108 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccrun.com 2009-09-26
  • 打赏
  • 举报
回复
创建文档时,先从数据库中将模板读出,存为一个本地临时文件,如C:\\123.dotx,然后:

String strDotFile = "C:\\123.dotx";
vWordApp.OlePropertyGet("Documents").
OleFunction("Add", strDotFile.c_str());
xabcxyz 2009-09-26
  • 打赏
  • 举报
回复
因为我使用了bcb6的server系列控件,所以如下:
h中定义:
TWordApplication *wdap1;
TWordDocument *wddc1;
cpp中代码:
String strDotFile = ExtractFileDir(Application->ExeName) = "\\dot\\mb.dot";
OleVariant Template = strDotFile;
OleVariant NewTemplate = False;
OleVariant ItemIndex = 1;
unsigned int DataHandle;
HPALETTE APalette;
unsigned short MyFormat;
Word_2k::RangePtr range;
Word_2k::Table *table;
Word_2k::WdDefaultTableBehavior rb = wdWord9TableBehavior;
Word_2k::WdAutoFitBehavior fb = wdAutoFitFixed;

try{ wdap1->Connect(); }
catch (Exception &exception){
MessageDlg("Word may not be installed", mtError, TMsgDlgButtons() << mbYes, 0);
Abort;
}
wdap1->GetDefaultInterface()->Visible = True;
wdap1->set_Caption(StringToOleStr("Borland automation"));

wdap1->Documents->Add(Template, NewTemplate);
wddc1->ConnectTo(wdap1->Documents->Item(ItemIndex));

出错了.
lghndyz 2009-09-26
  • 打赏
  • 举报
回复
Variant WordObject;
String StrCurrentPath = GetCurrentDir()+"\\"+"mb.Doc";
WordObject = CreateOleObject("Word.Basic");
WordObject.Exec(Procedure("FileNew"));
WordObject.Exec(Procedure("EndOfDocument"));
WordObject.Exec(Procedure("FileSaveAs")<<StrCurrentPath); //保存Word
WordObject.Exec(Procedure("FileOpen")<<StrCurrentPath); //打开Word
WordObject.Exec(Procedure("FileClose")<<1); //关闭Word
MessageBox(Handle,"Word文件保存成功!","信息提示",MB_OK);

703

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder ActiveX/COM/DCOM
社区管理员
  • ActiveX/COM/DCOM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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