从对象创建excel文件

时间:2013-08-30 13:07:13

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

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

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

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

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

2 个答案:

答案 0 :(得分:0)

我知道两种读取或写入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;
    }
    

答案 1 :(得分:-2)

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

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