2013-08-30 220 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; 
    }