我尝试打开Excel文件时出现异常

时间:2017-09-29 09:23:16

标签: c# excel

当我尝试打开一个excel文件来计算她的工作表编号时,我得到一个System.DllNotFoundException。有问题的dll是ole32.dll。在线我读到这个dll是windows的相对,但是我使用Visual Studio Comunity for MacOS。我怎么解决这个问题?

这是代码:

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

1 个答案:

答案 0 :(得分:1)

不幸的是Microsoft.Office.Interop.Excel无法在Mac或Linux上运行,如this Github问题所述:

  

我们没有计划让Office COM API在Mac或Linux上运行。如果Office团队提供有关如何执行此操作的文档,我们很乐意看一看。结果就此结束。

作为替代方案,我建议使用EPPlus