【问题标题】:Create excel file from an object从对象创建excel文件
【发布时间】:2013-08-30 13:07:13
【问题描述】:

我正在寻找一个可以做类似事情的图书馆:

Lib.Configure.Cells(...)
Lib.CreateExcelFileFromMyObject<MyObject>(myObject);

我相信很久以前我遇到过这样的库,但不记得它的名字了。

也许有人可以为我指明正确的方向。

【问题讨论】:

  • 也许你的意思是EPPLus,其中ExcelRange 有一个LoadFromCollection&lt;T&gt; 方法(除了LoadFromDataTable)。
  • 你能告诉我们 是如何声明的吗?每个属性都会匹配到同一行的一个单元格吗?
  • @Mauricio Gracia 我认为该库应该能够灵活地决定我想在文件中包含哪些行。
  • @Sreginogemoh 好的,但是如果你想让别人推荐一个特定的库,他们需要知道你想要实现什么

标签: c# .net excel c#-4.0


【解决方案1】:

我知道两种读取或写入 excel 文件的方法。

  1. 如前所述,您可以通过 office interop 接口访问 excel 文件,如 here 所述。这种方法速度很慢,但是你几乎可以做所有你可以用 excel 的 gui 做的事情。

  2. 使用OleDb 数据库接口。这种可能性比第一种要快得多,但仅限于数据。据我所知,无法读取/写入格式,例如单元格的一些背景颜色。使用以下功能,您将一次获得一张excel文件的全部数据:

    private DataSet ConnectAndLoad(string filepath, string sheet)
    {
        DataSet data_set = new DataSet();
        OleDbConnection oledbConn = new OleDbConnection(String.Format("Provider=Microsoft.Ace.Oledb.12.0;Data Source={0};Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1;\"", filepath));
        string query = "Select * From [" + sheet + "$]";
        try
        {
            oledbConn.Open();
            OleDbCommand oledbCmd = new OleDbCommand(query, oledbConn);
            OleDbDataAdapter ole_da = new OleDbDataAdapter(oledbCmd);
            ole_da.Fill(data_set);
        }
        catch (OleDbException ex)
        {
            // do some error catching
        }
        finally
        {
            oledbConn.Close();
        }
        return data_set;
    }
    

【讨论】:

    【解决方案2】:

    你可以使用 使用 Microsoft.Office.Interop 访问 ms 产品的命名空间

    为此,您首先需要将该引用添加到您的项目中

    【讨论】:

    • 此答案没有提供有关如何实现此人要求的具体信息
    • 回到你糟糕的博客,直到你对 Rafiq 先生有所了解。
    猜你喜欢
    • 2014-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-23
    • 2013-06-12
    • 2023-03-30
    • 1970-01-01
    相关资源
    最近更新 更多