如何使用c#和Office互操作获得Office文档的完整文件名?

本文关键字:Office 文件名 文档 何使用 互操作 | 更新日期: 2023-09-27 18:19:08

在下面的代码中,第二行抛出一个错误,读取"Exception from HRESULT: 0x800A03EC"。我怀疑我得到一个null的FullName。有人能告诉我我哪里做错了吗?

        Foo.DataClasses1DataContext db = new Foo.DataClasses1DataContext();
        string ThisDocument = Globals.ThisAddIn.Application.ThisWorkbook.FullName;
        byte[] inputBuffer = System.IO.File.ReadAllBytes(ThisDocument);
        Foo.RFP_Document rfpDocument = new MediaDesk.RFP_Document();
        rfpDocument.DocumentName = "Foobar";
        rfpDocument.DocumentFile = new System.Data.Linq.Binary(inputBuffer);
        db.RFP_Documents.InsertOnSubmit(rfpDocument);
        db.SubmitChanges();

作为上下文,这是一个用c#编写的Excel 2010插件,目标是。net 4.0。该代码的目的是将文档保存到数据库中。

如何使用c#和Office互操作获得Office文档的完整文件名?

使用Globals.ThisAddIn.Application.ActiveWorkbook.FullName。从MSDN Globals.ThisAddIn.Application.ThisWorkBook返回"宏"正在运行的工作簿。因为你没有宏,这将抛出一个异常