2013-08-30 172 views
-1

我找这会做这样的事情库excel文件:从创建一个对象

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

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

可能有人可以指向正确的方向。

+0

也许你的意思[** ** EPPLus(http://epplus.codeplex.com/ )其中'ExcelRange'具有'LoadFromCollection '方法(除了'LoadFromDataTable')。 –

+1

你能告诉我们怎么声明?每个属性都将被匹配到同一行上的单元格? –

+0

@Mauricio Gracia我认为图书馆应该能够给我想要包含的文件提供灵活性。 – Sreginogemoh

回答

-2

您可以使用Microsoft.Office.Interop 命名空间访问微软产品

对于你首先需要做的是,引用添加到您的项目

+0

这个答案没有提供有关如何达到该人的要求的具体信息 –

+0

回到你可怕的博客,直到你Rafiq先生有一些经验。 – Gusdor

0

我知道两种方式来读取或使用 编写excel文件。

  1. 前面已经说了,你可以通过office interop接口描述here访问Excel文件。这种方法很慢,但你几乎可以做任何你可以用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; 
    }