簡體   English   中英

VSTO Excel從當前打開的工作簿中讀取

[英]VSTO Excel Read from Current Open Workbook

是否可以使用EPPlus從打開的Excel(xlsx)中讀取? 我希望用戶能夠打開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 );
    }

嘗試非獨占訪問,如下所示:

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM