Как получить полное имя файла для документа Office, используя C # и Office Interop? - PullRequest
4 голосов
/ 30 декабря 2011

В следующем коде во второй строке выдается сообщение об ошибке «Исключение из 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();

Для контекста, это надстройка Excel 2010, написанная на C # для .NET 4.0. Целью кода является сохранение документа в базе данных.

1 Ответ

4 голосов
/ 30 декабря 2011

Используйте Globals.ThisAddIn.Application.ActiveWorkbook.FullName.Из MSDN Globals.ThisAddIn.Application.ThisWorkBook возвращает рабочую книгу, в которой работает «Макрос».Поскольку у вас нет макроса, это вызовет исключение.

...