c# - 如何使用 C# 和 Office Interop 获取 Office 文档的完整文件名?

标签 c# excel ms-office office-interop

在下面的代码中,第二行抛出一个错误,内容为“Exception from HRESULT: 0x800A03EC”。我怀疑我得到的 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# 编写的面向 .NET 4.0 的 Excel 2010 加载项。该代码的目的是将文档保存到数据库中。

最佳答案

使用 Globals.ThisAddIn.Application.ActiveWorkbook.FullName。来自 MSDN Globals.ThisAddIn.Application.ThisWorkBook 返回运行“宏”的工作簿。由于您没有宏,这将引发异常。

关于c# - 如何使用 C# 和 Office Interop 获取 Office 文档的完整文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8675992/

相关文章:

excel - 定义一组不相邻的单元格

python - 无法使用 openpyxl Workbook 将数据写入 Excel-Sheet

C#从HTML文档中提取内容

Excel VBA 处理一个参数的 64 个值

.net - 是否有 .NET 4 兼容版本的 Office 加载项 Shim?

linux - 是否可以在 linux 上的 qt 中渲染 .doc 文件?

ms-office - 从 Outlook JavaScript Api (office.js) 调用时,Exchange EWS 的 UpdateItem 中的访问被拒绝

c# - 如果只有一个可为空,则 Linq DateTime 表达式不会进行比较

c# - 将 Assert.That(而不是 Assume.That)与 [Theory] ​​一起使用是错误的吗?

c# - 全局鼠标事件处理程序