急!!如何将数据库中的字段写到word中?

syt_912 2006-11-06 12:25:39
我现在遇到一个很棘手的问题:
首先、用户要在html格式的表单里填写数据,可能是好多张html文件;然后,通过表单把数据写入到数据库中,这些数据可能不在一张表里面;最后,我要把我需要的一部分数据从数据库中读到word文档里面,这个word文档是做成.dot的模板格式的。

各位高手,这个问题应该怎么解决啊???SOS!!
...全文
426 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
syt_912 2006-11-21
  • 打赏
  • 举报
回复
还有没有更好的方法啊?大家帮顶啊。。
syt_912 2006-11-15
  • 打赏
  • 举报
回复
Lailuboy()能不能把你的例子也发我一份?
我的邮箱是syt_912@163.com
HSB19820706 2006-11-13
  • 打赏
  • 举报
回复
word的接口是什么啊,请高手写一下啊,谢谢!
lailuboy 2006-11-13
  • 打赏
  • 举报
回复
我已经发送一个生成Word报表的例子到super_yin@sohu.com,请注意查收。
HSB19820706 2006-11-13
  • 打赏
  • 举报
回复
有用C#开发的吗?
lif_009 2006-11-12
  • 打赏
  • 举报
回复
楼上我留的代码就是调用word的OLE例子,你可以参考一下。
lailuboy 2006-11-10
  • 打赏
  • 举报
回复
这个很容易啊,你采用什么语言?我这里有VB做的Word报表程序的。
lif_009 2006-11-10
  • 打赏
  • 举报
回复
PB中的代码,参考:
string docname, named
integer value
value = GetFileSaveName("选择模板文件", docname, named, "DOC", " Doc Files (*.DOC), *.DOC")
if named <> 'modal.doc' then
messagebox("","你没有选择模板文件modal.doc!!!")
return
end if
//messagebox('',docname)
IF value = 1 THEN
// Declare ole_object as an OLEOBJECT data type
OLEObject ole_object
// Create or "Instantiate" the ole_object variable
ole_object = CREATE OLEObject
//连接word
IF ole_object.ConnectToNewObject("Word.Application") <> 0 THEN
MessageBox('OLE错误','OLE无法连接!')
return
END IF

ole_object.Visible = True
ole_object.Documents.open(docname) //打开word模板文件

//dw_3.setredraw(false)
string days,check,des,no,pic_name,pic_no,prof,notes
long m,k
no = String(dw_1.GetItemNumber(dw_1.GetRow(),"nums"))
pic_name = dw_1.GetItemString(dw_1.GetRow(),"pic_name")
pic_no = String(dw_1.GetItemNumber(dw_1.GetRow(),"pic_no"))
des = dw_1.GetItemString(dw_1.GetRow(),"design")
check = dw_1.GetItemString(dw_1.GetRow(),"checkman")
prof = dw_1.object.prof[dw_1.GetRow()]
days = String(dw_1.GetItemDate(dw_1.GetRow(),"days"),"yyyy/mm/dd")
notes = dw_1.object.notes[dw_1.GetRow()]
IF isnull(notes) then notes = ' '

ole_object.selection.goto(true,0,0,'no') //将光标移动到书签name
ole_object.selection.typetext(no)
/////////////////////////////////////////////
//如果字符串中有中文的话,在添加的字符串后会生成相应个数的乱码,
//以下四句的作用就是求出字符串中的中文个数,然后将这些乱码删除。
//////////////////////////////////////////////
k=f_num(no) //取出字符串中的中文个数
for m = 1 to k
ole_object.Selection.TypeBackspace()
next

ole_object.selection.goto(true,0,0,'pic_name')
ole_object.selection.typetext(pic_name)
k=f_num(pic_name) //取出字符串中的中文个数
for m = 1 to k
ole_object.Selection.TypeBackspace()
next

ole_object.selection.goto(true,0,0,'pic_no')
ole_object.selection.typetext(pic_no)
k=f_num(pic_no) //取出字符串中的中文个数
for m = 1 to k
ole_object.Selection.TypeBackspace()
next

ole_object.selection.goto(true,0,0,'des')
ole_object.selection.typetext(des)
k=f_num(des) //取出字符串中的中文个数
for m = 1 to k
ole_object.Selection.TypeBackspace()
next

ole_object.selection.goto(true,0,0,'check')
ole_object.selection.typetext(des)
k=f_num(des) //取出字符串中的中文个数
for m = 1 to k
ole_object.Selection.TypeBackspace()
next

ole_object.selection.goto(true,0,0,'prof')
ole_object.selection.typetext(prof)
k=f_num(prof) //取出字符串中的中文个数
for m = 1 to k
ole_object.Selection.TypeBackspace()
next

ole_object.selection.goto(true,0,0,'days')
ole_object.selection.typetext(days)
k=f_num(days) //取出字符串中的中文个数
for m = 1 to k
ole_object.Selection.TypeBackspace()
next

ole_object.selection.goto(true,0,0,'notes')
ole_object.selection.typetext(notes)
k=f_num(notes) //取出字符串中的中文个数
for m = 1 to k
ole_object.Selection.TypeBackspace()
next
//dw_3.setredraw(true)

//保存新建的文档
//docname = left(docname,len(docname) - 4) + code + ".DOC"
//ole_object.ActiveDocument.SaveAs(docname, 0,false,"",True,"",False,False,False, False,False)
////关闭新建的文档 ( Word还打开着)
//ole_object.ActiveDocument.Close()
////关闭Word
//ole_object.Application.Quit()
//断开OLE连接
Ole_Object.DisConnectObject()
Destroy Ole_Object
END IF
lailuboy 2006-11-10
  • 打赏
  • 举报
回复
不管什么语言调用Word的接口后的操作都是一样的。我找找我以前的例子。
syt_912 2006-11-10
  • 打赏
  • 举报
回复
客户的需求就要从数据库中读数据。。。就象我的帖子里说的那个过程。。。

唉。。
syt_912 2006-11-10
  • 打赏
  • 举报
回复
to:lif_009(风信子) 我的邮箱是syt_912@163.com

谢谢各位咯~~:)

开发的语言不一定的,数据库是oracle的,当时考虑从VBA的角度来开发,但是我没做过这方面的开发,所以没什么经验
lif_009 2006-11-09
  • 打赏
  • 举报
回复
ole的调用方法可以在网上搜,如:http://www.99power.com/wz_25447/
以前用pb做过,要找一下,如果需要可以留下你的邮箱。
qq801221 2006-11-07
  • 打赏
  • 举报
回复
如果可以,你可以考虑换个思路。
首先使用word把表格画出来,表格做完后另存为Web页。然后看一下表格的代码。
其次把主要代码提取出来,如果是web程序放在客户端写数据就可以了。速度也比较快。
syt_912 2006-11-07
  • 打赏
  • 举报
回复
再来顶一下。。。希望有高手可以帮我。。。。
lif_009 2006-11-06
  • 打赏
  • 举报
回复
用第三方程序调用word的OLE控件用其中的方法,把数据库检索的值插入dot模板中;或者用vba联数据库写入dot啊
syt_912 2006-11-06
  • 打赏
  • 举报
回复
555555怎么没有人回我呢?
syt_912 2006-11-06
  • 打赏
  • 举报
回复
有没有相关的源码?我急着要。。。多谢了。。。没时间去自己开发了。。。5555555

5,172

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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