1
我試圖將查詢結果集導出到Excel工作表中。我需要運行8個查詢,其中每個查詢都將是Excel文件中的一個不同的表單。我還需要在表格中添加一些格式(添加標題,使報告看起來不錯等)。使用ODP.NET將Oracle數據導出爲Excel文件(使用C Sharp)
目前,我的代碼只是運行一個查詢(因此只有一個數據表)。這需要很長的時間來填寫4000行7列,這是一個小樣本。有沒有更好的方法來做到這一點?非常感謝!
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);
是什麼由EPPlus項目使用? http://epplus.codeplex.com/ – coergo
它是相同的文件格式,但它是一個不同的庫...所以:沒有EPPlus不使用MS庫OpenXML 2 – Yahia