2011-12-30 1 views
3

다음 코드에서 두 번째 줄에 "Exception from HRESULT : 0x800A03EC"이라는 오류가 발생합니다. FullName에 null이 붙어있는 것 같습니다. 누군가 내가 뭘 잘못하고 있다고 말할 수 있습니까?C# 및 Office Interop을 사용하여 Office 문서의 전체 파일 이름을 얻는 방법은 무엇입니까?

 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(); 

컨텍스트의 경우, 이것은 .NET 4.0을 대상으로하는 C#으로 작성된 Excel 2010 추가 기능입니다. 코드의 목적은 문서를 데이터베이스에 저장하는 것입니다.

답변

3

Globals.ThisAddIn.Application.ActiveWorkbook.FullName을 사용하십시오. MSDN Globals.ThisAddIn.Application.ThisWorkBook에서 "매크로"가 실행중인 통합 문서를 반환합니다. 매크로가 없으므로 예외가 발생합니다.