【问题标题】:VSTO Excel Read from Current Open WorkbookVSTO Excel 从当前打开的工作簿中读取
【发布时间】:2017-05-11 04:25:23
【问题描述】:

是否可以使用 EPPlus 从打开的 Excel (xlsx) 中读取?我希望用户能够打开 Excel 文档,单击加载项按钮并从活动工作表中读取数据。我不需要写入工作表,只需从中读取。

使用互操作,我能够获得打开的工作簿的完整路径,但是当我尝试实际访问工作簿时,我遇到了 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 );
    }

【问题讨论】:

    标签: c# vsto epplus epplus-4


    【解决方案1】:

    尝试非独占访问,如下所示:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-12
      • 1970-01-01
      • 2011-05-17
      相关资源
      最近更新 更多