Hi Friends,
I try to export Data from Database to Excel using C# windows application.if i have few columns the process is done quickly .otherwise it is taking more time .
So can you please suggest any other way to export data to excel in fastest way.
<pre lang="c#">Microsoft.Office.Interop.Excel.Application xlApp;
Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
string sql, sql1;
string data = null;
string connectionString;
ConnectionManager cm = Dts.Connections["SRC"];
IDTSConnectionManagerDatabaseParameters100 cmParams = cm.InnerObject as IDTSConnectionManagerDatabaseParameters100;
OleDbConnection conn = cmParams.GetConnectionForSchema() as OleDbConnection;
conn.Close();
conn.Open();
sql = "SELECT DISTINCT CAMPAIGNCODE FROM TMP1";
OleDbConnection ole;
ole = new OleDbConnection(conn.ConnectionString);
OleDbDataAdapter oladp = new OleDbDataAdapter(sql, conn);
DataSet ds = new DataSet();
oladp.Fill(ds);
Hashtable htOut = new Hashtable();
int s = 1;
foreach (DataRow drIn in ds.Tables[0].Rows)
{
htOut.Add(s, drIn["CAMPAIGNCODE"].ToString());
s = s + 1;
}
string Campaign = "";
string destpath = Dts.Variables["User::DestFilePath"].Value.ToString();
foreach (DictionaryEntry gg in htOut)
{
int i, j,autoseq;
xlApp = new Microsoft.Office.Interop.Excel.Application();
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
autoseq = 1;
Campaign = gg.Value.ToString();
sql1 = "SELECT * FROM TMP1 WHERE CAMPAIGNCODE= '" + Campaign + "'";
OleDbDataAdapter oladp1 = new OleDbDataAdapter(sql1, conn);
DataSet ds1 = new DataSet();
oladp1.Fill(ds1);
for (i = 1; i <= ds1.Tables[0].Rows.Count - 1; i++)
{
for (j = 0; j <= ds1.Tables[0].Columns.Count - 1; j++)
{
data = ds1.Tables[0].Rows[i].ItemArray[j].ToString();
xlWorkSheet.Cells[i + 1, j + 1] = data;
}
}
xlWorkBook.SaveAs(destpath + "\\" + Campaign + "_" + autoseq + "_" + ".xls", Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();
releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlApp);
Regards
Arul