2017-09-29 90 views
1

當我嘗試打開Excel文件來計算她的工作表編號時,我得到一個System.DllNotFoundException。有問題的DLL是ole32.dll。在線我讀到,這個DLL是相對的窗口,但我與Visual Studio Comunity的MacOS工作。我如何解決這個問題?當我嘗試打開Excel文件時發生異常

這是代碼:

using System; 
using System.IO; 
using Microsoft.Office.Interop.Excel; 
using Excel = Microsoft.Office.Interop.Excel; 

namespace Itec 
{ 
    class MainClass 
    { 
     public static int countSheet(string file){ 

      int numSheet = 1; 

      Application excelApp = new Application(); 
      Workbook workBook = excelApp.Workbooks.Open("d:/Book1.xls"); 

      numSheet = workBook.Sheets.Count; 

      return numSheet; 
     } 

     public static void Main(string[] args) 
     { 
      string user, fileName, pathFile, ext; 

      do 
      { 
       user = System.Security.Principal.WindowsIdentity.GetCurrent().Name; 

       Console.WriteLine("Inserire il nome del file (se è in una cartella scrivere nel seguente formato \"nomeCartella/nomeFile.pdf\"): "); 
       fileName = Console.ReadLine(); 
       pathFile = "/Users/" + user + "/Desktop/" + fileName; 
       ext  = Path.GetExtension(pathFile); 

       if (String.Equals(ext, ".xlsx")) 
       { 
        if (File.Exists(pathFile)) 
        { 
         countSheet(pathFile); 
        } 
        else 
        { 
         Console.WriteLine("Il file inserito non esiste"); 
         Console.WriteLine("Premere invio per riprovare"); 
         Console.ReadKey(); 
        } 
       } 
       else 
       { 
        Console.WriteLine("Estensione non corretta"); 
        Console.WriteLine("Premere invio per riprovare"); 
        Console.ReadKey(); 
       } 

      } 
      while (!String.Equals(ext, ".xlsx") && !File.Exists(pathFile)); 
     } 
    } 
} 
+2

要解決此問題,請使用Windows而不是Mac OS X.或者,使用平臺不可知的Excel庫。 _Maybe_ [EPPlus](https://github.com/JanKallman/EPPlus)ist one。 –

+0

首先使用'try {} catch(Excetpion){}'來避免應用程序中的錯誤。 –

+0

@FelixD。我使用'try {} catch(Excetpion){}',但它並沒有解決問題,因爲它跳轉指令 – th3g3ntl3man

回答

1

可惜Microsoft.Office.Interop.Excel不會在Mac或Linux的工作,因爲在this Github的問題指出:

我們沒有計劃使Office COM API的工作原理在Mac或Linux上。如果Office團隊編寫關於如何做到這一點的文檔,我們很高興看一看。作爲結果關閉。

作爲替代方案,我會推薦使用EPPlus

相關問題