Hi Srini,
Here the code to Export Data from DataSet to Excel using Save File Dialog
//ItemEvent
if (pVal.ItemUID == "Export")
{
SAPbobsCOM.Recordset oRecordset = null;
if (oMatrix.RowCount > 0)
{
string sExportSP = "Export_Details_Query";
DataSet oDS = new DataSet();
string ConnectionString = ystem.Configuration.ConfigurationSettings.AppSettings["SqlConn"];
SqlConnection myConnection = new SqlConnection(ConnectionString);
myConnection.Open();
SqlDataAdapter oDA = new SqlDataAdapter(sExportSP, myConnection);
oDA.Fill(oDS);
if (oDS.Tables[0].Rows.Count > 0)
{
string strPath = "";
SaveFileDialog saveDlg = new SaveFileDialog();
saveDlg.InitialDirectory = @"C:\";
saveDlg.Filter = "Excel files (*.xls)|*.xls";
saveDlg.FilterIndex = 0;
saveDlg.RestoreDirectory = true;
saveDlg.Title = "Export Excel File To";
DialogResult ret = STAShowDialog(saveDlg);
if (ret == System.Windows.Forms.DialogResult.OK)
{
strPath = saveDlg.FileName;
if (strPath != "")
{
using (StreamWriter sw = new StreamWriter(strPath))
{
ExportDatas(oDS as DataSet, sw, true);
}
}
}
}
}
}
// Functions
private static DialogResult STAShowDialog(FileDialog dialog)
{
DialogState state = new DialogState();
state.dialog = dialog;
System.Threading.Thread t = new System.Threading.Thread(state.ThreadProcShowDialog);
t.SetApartmentState(System.Threading.ApartmentState.STA);
t.Start();
t.Join();
return state.result;
}
public static void ExportDatas(DataSet sourceDS, TextWriter writer, bool includeHeaders)
{
if (includeHeaders)
{
// string tab = "";
List<string> headerValues = new List<string>();
foreach (System.Data.DataColumn column in sourceDS.Tables[0].Columns)
{
headerValues.Add(QuoteValue(column.ColumnName));
// tab = "\t";
}
writer.WriteLine(String.Join("\t", headerValues.ToArray()));
}
string[] items = null;
foreach (DataRow row in sourceDS.Tables[0].Rows)
{
items = row.ItemArray.Select(o => QuoteValue(o.ToString())).ToArray();
writer.WriteLine(String.Join("\t", items));
}
writer.Flush();
}
private static string QuoteValue(string value)
{
return String.Concat("\"", value.Replace("\"", "\"\""), "\"");
}
//Dialogstate Class
public class DialogState
{
public DialogResult result;
public FileDialog dialog;
public void ThreadProcShowDialog()
{
result = dialog.ShowDialog();
}
}