如何在Mono中使用c#.net EPPlus

时间:2012-08-28 14:26:11

标签: .net monodevelop epplus

我研究过使用c#.net操作Excel文件的方法,而不使用Excel互操作,并且遇到了EPPlus。它似乎在Windows上运行良好。但是如何让它在Mono中运行(我们的服务器是Linux服务器)。

这是我尝试测试的代码(一个简单的.exe):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using OfficeOpenXml;
using OfficeOpenXml.Drawing;
using OfficeOpenXml.Style;
using System.IO;

namespace ConsoleApp
{
class Program
{
    static void Main(string[] args)
    {

        ExcelPackage excelPackage = new ExcelPackage();
        ExcelWorksheet excelWorksheet = CreateSheet(excelPackage, "TestSheet");

        Byte[] bin = excelPackage.GetAsByteArray();
        string file = Directory.GetCurrentDirectory() + @"\Test.xlsx";
        File.WriteAllBytes(file, bin);
    }
}
}

但是,当我尝试从Linux服务器运行它时,它崩溃并说“控制台应用程序已停止工作”。有什么明显的我做错了吗?

非常感谢!

2 个答案:

答案 0 :(得分:1)

此版本不支持Mono。请参阅EPPlus FAQ

  

我可以将此库与Mono一起使用吗?

     

好问题!我没试过,所以我不知道。如果你尝试过,请给我一些反馈。

答案 1 :(得分:1)

是的,你可以! 已下载Epplus 4.0.3。 使用libreoffice创建了一个excel工作簿。 在mint 17.1上使用monodevelop创建了一个控制台应用程序。

using System;
using OfficeOpenXml;
using System.IO;
namespace test
{
    class MainClass
    {
        public static void Main (string[] args)
        {
            FileInfo f = new FileInfo ("tht.xlsx");
            using (ExcelPackage p = new ExcelPackage(f))
            {
                ExcelWorksheet ws = p.Workbook.Worksheets["Ark1"];
                Console.WriteLine(ws.Cells[1, 1].Value);
            }


        }
    }
}