我研究过使用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服务器运行它时,它崩溃并说“控制台应用程序已停止工作”。有什么明显的我做错了吗?
非常感谢!
答案 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);
}
}
}
}