簡體   English   中英

使用C Sharp將ODP.NET的Oracle數據導出到Excel文件中

[英]Export Oracle Data with ODP.NET into an Excel File with C Sharp

我正在嘗試將查詢結果集導出到Excel工作表中。 我需要運行8個查詢,每個查詢將在excel文件中使用不同的工作表。 我還需要在工作表周圍添加一些格式設置(添加標題,使報表看起來更漂亮等)。

目前,我的代碼僅運行一個查詢(因此僅一個數據表)。 這需要很長的時間才能用7列填充4000行,這就是一個很小的樣本。 有更好的方法嗎? 非常感謝!

Excel.Application xlApp;
        Excel.Workbook xlWorkBook;
        Excel.Worksheet xlWorkSheet;
        object misValue = System.Reflection.Missing.Value;
        string data = null;
        int i = 0;
        int j = 0; 

        xlApp = new Excel.ApplicationClass();
        xlWorkBook = xlApp.Workbooks.Add(misValue);
        xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

        string cs = "oracle connection string filtered for online posting";

        DataSet ds = new DataSet();

        OracleConnection oconn = new OracleConnection(cs);
        oconn.Open();
        Model_Netstat netstat = new Model_Netstat();
        OracleCommand oc = new OracleCommand(netstat.queryNetstatAll(session.caseName), oconn);
        oc.CommandType = CommandType.Text;

        OracleDataAdapter oda = new OracleDataAdapter(oc);
        try
        {

            oda.Fill(ds);
        } catch(Exception ex)
        {
            Console.Write(ex.Message);
        }

        for (i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
        {
            for (j = 0; j <= ds.Tables[0].Columns.Count - 1; j++)
            {
                data = ds.Tables[0].Rows[i].ItemArray[j].ToString();
                xlWorkSheet.Cells[i + 1, j + 1] = data;
            }
        }

        xlWorkBook.SaveAs("test.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
        xlWorkBook.Close(true, misValue, misValue);
        xlApp.Quit();

        releaseObject(xlWorkSheet);
        releaseObject(xlWorkBook);
        releaseObject(xlApp);

從Microsoft那里檢查免費的OpenXML SDK 2 ,它不需要自動化就可以滿足您的需求,而且速度更快,並且可以在ASP.NET中使用(那里不支持自動化)...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM