QuickOffice
之类的
办公软件
打开的,还没有真正读取里面的内容显示的,doc文件中也不光是文字啊,还有图片之类的啊!
1.可以通过流将图片或word转化为二进制数据,然后存入,选择使用一种动态语言即可轻松完成.
但是,由于此类文件较大,数据读取和写入都将非常缓慢,所以不提倡这样.
建议使用图片和文档的路径保存在数据库中.
2.
用StreamReader读取一个doc文件,转成byte[],写入数据库的image类型字段
读出来的时候一样,把流写成doc文件就行了
3.
SQL
Server
2000
可以使用
image
类型,最大可存储
2^31-1
个字节
即
2GB。
或者使用
binary
和
varbinary
类型,最大可存储
8,000
个字节。
未来的SQL
Server版本将删除
image
类型,所以
SQL
Server
2005
推荐使用
varbinary(max)
类型,最大可存储
2GB。
基本步骤
(1)创建)一个 MFC 的程序工程。
注意:在VC中对WORD进行 *** 作需要在MFC AppWizard - Step 2 of
4中的Automaiton选项上打上勾。
(2)Ctrl+W 执行 ClassWizard(本文按照 VC6 *** 作,示例程序是在VC6 下编写测试的)。
(3)Add Class...\From a type Library... 在 Office
目录中,找到想使用的类型库。(我使用的是 Office2003,其Word 的类型库文件,保存在 E:\Program
Files\Microsoft Office\Office12\MSWOR.OLB)。
(4)选择类型库文件后,在d出的对话窗中继续选择要添加的类。具体选择什么类,要看你将来在程序中打算调用什么功能。当然,也可以不用考虑这么多,用鼠标和Shift键配合,全部选择也可以。
(5)初始化COM。方法一,找到App的InitInstance()函数,在其中添加
AfxOleInit()函数的调用;方法二,在需要调用COM功能的地方 CoInitialize(NULL),调用完毕后
CoUninitialize()。
(6)在你需要调用 Office 功能函数的 cpp 文件中
#include
<atlbase.h> //
为了方便 *** 作 VARIANT 类型变量,使用 CComVariant 模板类
#include "文件名.h" //
具体的头文件名,是由装载类型库的文件名决定的,如MSWORD。
示例程序:
//word应用程序_Application app
//初始化连接
app.CreateDispatch("word.Application")
Documents doc
CComVariant
a(_T(strWord)),b(false),c(0),d(true),aa(0),bb(1)
_Document doc1
doc.AttachDispatch(app.GetDocuments())
doc1.AttachDispatch(doc.Add(&a,&b,&c,&d))
Range range
//求出文档的所选区域
range=doc1.GetContent()//取出文件内容
str=range.GetText()
m_richedit.SetWindowText(str)
//关闭
app.Quit(&b,&c,&c)
//释放环境
app.ReleaseDispatch()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)