使用C#读取/写入Excel文件(.xls/.xlsx)

jit*_*uin 18 .net c# excel

如何在C#中读写Excel文件?我已经将Excel对象库添加到我的项目中,但是我没有清楚地描述访问文件需要做什么.

请帮助我理解,在解释时,请记住我对此有些新意,但我不是一个完整的新手.我学习了很多,所以我并不是完全无知.

小智 14

我非常喜欢使用EPPlus来执行这些类型的操作.EPPlus是一个可以在项目中引用的库,可以在服务器上轻松创建/修改电子表格.我将它用于任何需要导出功能的项目.

这是一个很好的博客文章,展示了如何使用该库,虽然库本身应该附带一些说明如何使用它的示例.

在我看来,第三方库比Microsoft COM对象更容易使用.我建议试一试.

  • 不要忘记条件:"EPPlus是一个.net库,使用Open Office Xml格式(xlsx)读取和写入Excel 2007/2010文件." 所以.xls文件不起作用. (3认同)
  • 该链接不再有效。我想现在也需要许可证吧? (3认同)

Pau*_*lor 8

我使用NPOI满足我的所有Excel需求.

http://npoi.codeplex.com/

附带许多常见Excel任务的示例解决方案.


Lor*_*tti 5

ClosedXML库是简单而强大的解决方案。在“封闭”Excel 文件的单元格中读写非常简单,主要逻辑如下:

using Excel = ClosedXML.Excel;

namespace Excel_Tests
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

     private void button1_Click(object sender, EventArgs e)
     {
        //create 'workbook' object
        var wb = new Excel.XLWorkbook("E:\\test1.xlsx");
        
        //create 'worksheet' object
        var ws = wb.Worksheets.Worksheet("Sheet1");

        //read cells
        var a = ws.Cell("A1").Value;
        var b = ws.Cell("B1").Value;

        Console.WriteLine(a.ToString());
        Console.WriteLine(b.ToString());

        //write cells
        ws.Cell("F2").Value = 9999999;
        ws.Cell("F2").Value = 2.333;
        ws.Cell("G2").Value = "This is cell G2";
        
        wb.Save();

    }
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 这是最新的也是最好的答案。自从最初的答案以来,所有其他项目都走了一些不同的方向 (2认同)

Los*_*nos 0

如果您正在进行简单的操作并且可以将自己绑定到 xlsx,那么您可以考虑自己操作 XML。我已经做到了,发现它比摸索 excel 库更快。

还有一些更容易使用的第 3 方库...并且可以在 MS 无法使用的服务器上使用。