读写Excel文件C#

读写Excel文件C#,c#,excel,C#,Excel,是否有任何易于实现的库可用于读取excel文件并在以后创建它们? 这是我最好的选择吗 我曾经效力的一家公司对此进行了大量研究,并认为软工匠的产品是他们最好的选择: 我总是觉得奇怪,对Excel阅读和写作的支持是多么薄弱。我敢肯定,如果您使用Microsoft的库,您必须安装Excel,这与OfficeWriter一样是一笔额外的费用。您可以选择VBA,也可以使用Microsoft的免费库。如果您计划购买一些商业解决方案,我建议您使用excel package plus: 虽然只适用于xlsx

是否有任何易于实现的库可用于读取excel文件并在以后创建它们? 这是我最好的选择吗


我曾经效力的一家公司对此进行了大量研究,并认为软工匠的产品是他们最好的选择:


我总是觉得奇怪,对Excel阅读和写作的支持是多么薄弱。我敢肯定,如果您使用Microsoft的库,您必须安装Excel,这与OfficeWriter一样是一笔额外的费用。

您可以选择VBA,也可以使用Microsoft的免费库。如果您计划购买一些商业解决方案,我建议您使用excel package plus:


虽然只适用于xlsx,但Office 2003仍在循环使用。

如果您愿意使用更高版本的Excel(2007+),也可以查看。它是免费的,不会将您与在运行它的机器上安装MS Office捆绑在一起,并且有很多关于如何在线使用它的资源()

根据需要,您需要包括对Microsoft Excel 12.0对象库的引用。从这里开始,您需要做一些事情来打开文件。网站上有一个代码示例


PS-抱歉,内容不太详细,但我找不到更多详细信息的Microsoft Office developer参考资料。

我使用了ExcelLibrary,结果非常好!(到目前为止,它支持Excel 2003或更低版本)

试试这个:

EPPlus是一个.net库,用于读取和写入Excel 2007/2010文件 使用OpenOfficeXML格式(xlsx)

您可以使用,尽管它仅适用于2003格式的.xls

本项目的目标是提供一个本机.NET解决方案,以便在不使用COM互操作或OLEDB连接的情况下创建、读取和修改Excel文件

我有机会使用,它非常棒:),它适用于2007/2010年使用的新excel格式.xlsx

EPPlus是一个.net库,您可以读取和写入excel文件,创建图表、图片、形状。。。还有更多


再看看这个

我已经使用了oledb、interop,并且刚刚开始使用Epplus。到目前为止,ePlus被证明是最简单的。

然而,我刚刚发布了一个关于epplus的问题,但是我发布了一些代码,您可以将其用作参考

我喜欢用它来阅读,用它来写作

下面是一个用它阅读的例子:

            FileStream stream = File.Open(filePath, FileMode.Open, FileAccess.Read);

        // Reading from a binary Excel file ('97-2003 format; *.xls)
        //            IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream);

        // Reading from a OpenXml Excel file (2007 format; *.xlsx)
        IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);

        // DataSet - The result of each spreadsheet will be created in the result.Tables
        DataSet result = excelReader.AsDataSet();

        // Free resources (IExcelDataReader is IDisposable)
        excelReader.Close();

        var cdm = new ValueSetRepository();

        for (int i = 0; i < result.Tables.Count; i++)
        {
            // CHECK if tableNames filtering is specified
            if (tableNames != null)
            {
                // CHECK if a table matches the specified tablenames
                var tablename = result.Tables[i].TableName;
                if (!tableNames.Contains(tablename))
                {
                    continue;
                }
            }

            var lookup = new ValueSetLookup();
            lookup.CmsId = result.Tables[i].Rows[2][0].ToString();
            lookup.NqfNumber = result.Tables[i].Rows[2][1].ToString();
            lookup.Data = new List<ValueSetAttribute>();

            int row_no = 2;
            while (row_no < result.Tables[i].Rows.Count) // i is the index of table
            // (sheet name) which you want to convert to csv
            {
                var currRow = result.Tables[i].Rows[row_no];
                var valueSetAttribute = new ValueSetAttribute()
                {
                    Id = currRow[0].ToString(),
                    Number = currRow[1].ToString(),
                    tName = currRow[2].ToString(),
                    Code = currRow[7].ToString(),
                    Description = currRow[8].ToString(),
                };

                lookup.Data.Add(valueSetAttribute);
                row_no++;
            }

            cdm.AddRecord(lookup);
FileStream-stream=File.Open(filePath,FileMode.Open,FileAccess.Read);
//从二进制Excel文件读取('97-2003格式;*.xls)
//IExcelDataReader excelReader=ExcelReaderFactory.CreateBaryReader(流);
//从OpenXml Excel文件读取(2007格式;*.xlsx)
IExcelDataReader excelReader=ExcelReaderFactory.CreateOpenXmlReader(流);
//数据集-将在result.Tables中创建每个电子表格的结果
数据集结果=excelReader.AsDataSet();
//免费资源(IEExcelDataReader可IDisposable)
excelReader.Close();
var cdm=新的ValueSetRepository();
for(int i=0;i
是的,存在多个开源库来帮助使用C#读取和/或编写Excel电子表格

以下是C#库的短名单:

  • 维护最新的策划名单

    示例:使用ExcelMapper读取Excel文件

    a、 通过在NuGet数据包管理器中运行以下命令,使用NuGet安装:

    Install-Package ExcelMapper
    
    b、 ExcelMapper的C#代码示例

        public void ReadExcelUsingExcelMapperExtension()
        {
            string filePath = @"C:\Temp\ListOfPeople.xlsx";
            var people = new ExcelMapper(filePath).Fetch<Person>().ToList();
        }
    
        public class Person
        {
          public string FirstName { get; set; }
          public string LastName { get; set; }
          public int Age { get; set; }
        }
    
    public void readExcelUsingExcelApperextension()
    {
    字符串文件路径=@“C:\Temp\ListOfPeople.xlsx”;
    var people=new ExcelMapper(filePath).Fetch().ToList();
    }
    公共阶层人士
    {
    公共字符串名{get;set;}
    公共字符串LastName{get;set;}
    公共整数{get;set;}
    }
    

    免责声明:我喜欢ExcelMapper的简洁性,因此包含了此软件包的示例代码。要使用其他库执行相同操作,需要更多的代码。

    可能重复“是”,如果您希望完全能够读取和编辑Excel文件,自动化界面可能是您的最佳选择。根据您想要执行的操作,有时可能会出现错误简单的CSV文件可以使用。Excel将很容易地吸收这些内容。但这将用于创建Excel文件…您提到的问题是读取Excel文件…自动化界面…学习和使用起来很复杂(完整)