在MS Access中提取Word OLE对象

本文关键字:Word OLE 对象 提取 MS Access | 更新日期: 2023-09-27 18:07:33

我有一个c#项目与Microsoft Access数据库。在表内,我有一个列与附加OLE对象(Word文件)。解决方案是-使用c#从数据库打开此附加的Word文件。在互联网上找到了很多带有图片的例子,但是没有一个带有Word文件的例子。

我试过这个,但它没有工作。任何帮助吗?

string strSQL = "SELECT Attach FROM tbl_example WHERE ID=1";
OleDbCommand cmd = new OleDbCommand(strSQL, con);
var oleBytes = (Byte[])cmd.ExecuteScalar();
const int offset = 85;
MemoryStream ms = new MemoryStream();
ms.Write(oleBytes, offset, oleBytes.Length - offset);
Word.Application newWordApp = new Word.Application();
newWordApp.Visible = true;
Word.Document newWordDoc = newWordApp.Documents.Open(ms);

在MS Access中提取Word OLE对象

我正在重新设计代码。现在来看看这个例子——OLE word文档将被读取并保存。当我将双击打开保存的word文档文件夹测试-第一个word应用程序打开,给我的消息,word文件是损坏的。然后按OK键,文档就打开了…所有文字和图片都以OLE对象的形式保存在数据库中。所以它现在可以工作99%:D…这段代码可以工作,没有停止调试。但是新保存的word文件(从access ole db)有点损坏…

        string strSQL = "SELECT Anhang FROM tbl_inhalte WHERE ID=1";
        OleDbCommand cmd = new OleDbCommand(strSQL, con);
        var oleBytes = (Byte[])cmd.ExecuteScalar();
        File.WriteAllBytes(@"c:'test'worddatei.docx", oleBytes.Skip(0).ToArray());