DoExport
protected virtual void OnPreExport(ExportEventArgs e)
{
DataGridView dgv = null;
Control control;
for (control = this.ActiveControl; (control != null) && !object.ReferenceEquals(this, control); control = control.Parent)
{
if (control is DataGridView)
{
dgv = control as DataGridView;
break;
}
}
if (dgv == null)
{
foreach (Control ctl in this.Controls)
{
if (ctl is DataGridView)
{
dgv = ctl as DataGridView;
break;
}
}
}
if (dgv == null)
{
e.Cancel = true;
}
}
protected virtual void OnExport(string fileName)
{
DataGridView dgv = null;
Control control;
for (control = this.ActiveControl; (control != null) && !object.ReferenceEquals(this, control); control = control.Parent)
{
if (control is DataGridView)
{
dgv = control as DataGridView;
break;
}
}
if (dgv == null)
{
foreach (Control ctl in this.Controls)
{
if (ctl is DataGridView)
{
dgv = ctl as DataGridView;
break;
}
}
}
if (dgv != null)
{
this.DoExportDataGridView(dgv, fileName);
return;
}
//if (this.DataBlockSet.DataSource != null && this.DataBlockSet.DataSource.Tables.Count > 0)
//{
// this.DoExportDataTable(this.DataBlockSet.DataSource.Tables[0], fileName);
//}
}
protected void DoExport()
{
try
{
ExportEventArgs e = new ExportEventArgs("Excel files (*.xls)|*.xls|All Files (*.*)|*.*");
this.OnPreExport(e);
if (!e.Cancel && !string.IsNullOrEmpty(e.Filter))
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.CheckFileExists =false;
openFileDialog.ShowReadOnly = false;
openFileDialog.Title = "Save Output As";
openFileDialog.Filter = e.Filter;
openFileDialog.DefaultExt = "xls";
DialogResult dr = openFileDialog.ShowDialog(this);
if (dr == DialogResult.OK)
{
this.OnExport(openFileDialog.FileName);
}
}
}
catch (Exception ex)
{
this.ShowError(ex);
}
}
protected virtual void DoExportDataTable(DataTable datatable, string fileName)
{
if (datatable != null)
{
DtsWizard.HtmlDtsProvider htmlDts = new DtsWizard.HtmlDtsProvider();
htmlDts.FilePath = fileName;
htmlDts.Export(datatable);
}
}
protected virtual void DoExportDataGridView(DataGridView dgv, string fileName)
{
if (dgv != null)
{
DtsWizard.DataGridViewDtsProvider dts = new DtsWizard.DataGridViewDtsProvider();
dts.FilePath = fileName;
dts.Export(dgv);
}
}