2017-05-10 4 views
0

열려있는 Excel (xlsx)에서 EPPlus를 사용하여 읽을 수 있습니까? 사용자가 Excel 문서를 열고 Add-In 단추를 클릭 한 다음 활성 워크 시트에서 데이터를 읽을 수있게하려고합니다. 나는 워크 시트에 글을 쓸 필요가 없다.VSTO Excel 현재 열려있는 통합 문서에서 읽기

interop을 사용하여 열려있는 통합 문서의 전체 경로를 가져올 수 있었지만 실제로 통합 문서에 액세스하려고 시도했을 때 I/O 오류가 발생했습니다. 어떤 아이디어가이 문제를 어떻게 해결할 수 있습니까?

var test = (Microsoft.Office.Interop.Excel.Workbook) Globals.ThisAddIn.Application.ActiveWorkbook; 
    var test2 = test.ActiveSheet; 
    //var test21 = (Microsoft.Office.Interop.Excel.Workbook) Globals.ThisAddIn.Application.ActiveSheet; 
    var test3 = new FileInfo(test.FullName); 


    using (ExcelPackage package = new ExcelPackage(test3)) // <--- I/O error here 
    { 
     var worksheet = package.Workbook.Worksheets[ "Sheet1" ]; 
     string myString = String.Format("{0}", worksheet.Cells[ 1, 1 ].Text); 
    } 

답변

1

는 다음과 같이, 비 독점적 인 접근을 시도

.... 
var stream = new FileStream(test.FullName, FileMode.Open, FileAccess.Read, 
          FileShare.ReadWrite); // <<< ---!! 

using (ExcelPackage package = new ExcelPackage(stream)) 
{ 
    ... 
} 
+0

감사 @Nikolay을. 이것은 훌륭하게 작동했습니다! – mack

관련 문제