【问题标题】:C# export to excelC#导出到excel
【发布时间】:2010-08-15 05:07:05
【问题描述】:

这是将数据导出到现有 xls 工作表的最佳方式。 我需要支持许多版本的excel。 如果我使用的是 Visual Basic。我会使用 CreateObject("Excel.application") 代码来满足我的需要。 c#中的等价物是什么? 我希望它可以在任何版本上工作,如果可能的话,也可以在没有 ms office 的计算机上工作。 请不要花钱购买第三方组件。我们很穷:)。

TY

【问题讨论】:

    标签: c# .net excel


    【解决方案1】:

    使用 C# 写入 Excel 可以使用 Interop.Excel 完成。这里有一个很好的教程,带有屏幕截图,可以帮助实现这一点。

    http://csharp.net-informations.com/excel/csharp-excel-tutorial.htm

    【讨论】:

    • 该站点看起来包含大量信息。太糟糕了,太丑了。
    【解决方案2】:

    有用于将 ASP.Net 网格导出到 Excel 的内置函数。它会向最终用户发出一点警告信息,但它确实有效。

    这里有描述:C Sharp Corner

    【讨论】:

    • 嗨。我使用winforms。无论如何感谢您的帮助。
    【解决方案3】:

    如果您想打开一个 excel 文档然后添加内容,最简单的方法之一(不需要安装 excel)是获取一个第三方库(可能有一些开源解决方案),它可以读取和保存excel文件。

    【讨论】:

      【解决方案4】:

      我知道你说没有第三方,但原因似乎是成本。

      我使用的库是 GemBox。只要电子表格不太大(最多 150 行和 5 个工作表),它就是免费的。对于我的使用来说,这没问题,而且效果很好。

      http://www.gemboxsoftware.com/GBSpreadsheet.htm

      还有一些开源选项。

      如果您正在写入 XML 格式,那么 ExcelPackage 是免费的 (GPL) 并且可能适合您:

      http://excelpackage.codeplex.com/

      如果您不想要 XML 而想要其他格式,我听说 ExcelLibrary (LGPL) 的优点:

      http://code.google.com/p/excellibrary/

      还有一个 JExcel 库 (LGPL) 到 C# 的端口:

      http://www.chrislaforetsoftware.com/products.html

      【讨论】:

      • FlexCel 也应该包括在内。
      • 谢谢siride。我没有听说过 FlexCel。他们有某种免费版本吗(OP 说他很穷)?
      • 伙计们,感谢您的帮助!泰。
      【解决方案5】:

      Excel 导出

      我为此使用 EP Plus Excel Export。将来自 Nuget 的 EP Plus 库添加到您的项目中。然后将此类添加到您的项目中。

      ExcelExport.cs

      试试

      并在 MVC 上使用它:

      public ActionResult ExportToExcel(string cid)
      {
          var customerList = new List<DtoCustomer>();
          customerList = CustomerFactory.Gets();
          ExcelExport.EpplusExportToExcelFromObjectList(customerList.ToList<object>(), "Customer List", true);
      
          return null;
      }
      

      您还可以定义在 Excel 文档中显示哪个名称的列。你必须为此创建一个属性类。

      导出属性

      using System.Attribute;
      public class ExportAttribute : Attribute
      {
          public string DisplayName { get; set; }
          public bool IsVisible { get; set; }
      }
      

      类和实现

      然后,在你的类中实现这个属性:

      public class DtoCustomer
      {
          [ExportAttribute(DisplayName = "#", IsVisible = false)]
          public int ID { get; set; }
          [ExportAttribute(DisplayName = "Customer Name", IsVisible = true)]
          public string Name{ get; set; }
          [ExportAttribute(DisplayName = "Customer Surname", IsVisible = true)]
          public string Surname { get; set; }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-21
        • 1970-01-01
        • 1970-01-01
        • 2013-11-08
        • 2014-10-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多