DataGridViewDtsProvider
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Data;
using System.Windows.Forms;
namespace DtsWizard
{
public class DataGridViewDtsProvider : IDtsProvider
{
private string filePath = "";
[Editor(typeof(Design.HtmFileNameEditor), typeof(System.Drawing.Design.UITypeEditor))]
public string FilePath
{
get { return filePath; }
set { filePath = value; }
}
#region IDtsProvider Members
public void Export(object dataSOurce)
{
using (System.IO.StreamWriter sw = new System.IO.StreamWriter(this.filePath))
{
//string myHtmlFile = "";
if (dataSOurce == null)
{
throw new System.ArgumentNullException("targetTable");
}
else
{
//Continue.
}
DataGridView datagrid = dataSOurce as DataGridView;
//Get a worker object.
//StringBuilder myBuilder = new StringBuilder();
//Open tags and write the top portion.
sw.WriteLine("<html xmlns='http://www.w3.org/1999/xhtml'>");
sw.WriteLine("<head>");
sw.WriteLine("<title>");
sw.WriteLine("Page-");
sw.WriteLine(Guid.NewGuid().ToString());
sw.WriteLine("</title>");
sw.WriteLine("</head>");
sw.WriteLine("<body>");
sw.WriteLine("<table border='1px' cellpadding='5' cellspacing='0' ");
sw.WriteLine("style='border: solid 1px Silver; font-size: x-small;'>");
//Add the headings row.
sw.WriteLine("<tr align='left' valign='top'>");
List<int> columns = new List<int>();
foreach (DataGridViewColumn column in datagrid.Columns)
{
if (column.Visible)
{
sw.WriteLine("<td align='left' valign='top'>");
sw.WriteLine(column.HeaderText);
sw.WriteLine("</td>");
columns.Add(column.Index);
}
}
//foreach (DataColumn myColumn in datatable.Columns)
//{
// sw.WriteLine("<td align='left' valign='top'>");
// sw.WriteLine(myColumn.ColumnName);
// sw.WriteLine("</td>");
//}
sw.WriteLine("</tr>");
foreach (DataGridViewRow row in datagrid.Rows)
{
sw.WriteLine("<tr align='left' valign='top'>");
for (int i = 0; i < columns.Count; i++)
{
DataGridViewCell cell = row.Cells[columns[i]];
if (cell.ValueType == typeof(string))
{
sw.WriteLine("<td style='mso-number-format:\\@' align='left' valign='top'>");
}
else
{
sw.WriteLine("<td align='left' valign='top'>");
}
sw.WriteLine(cell.FormattedValue);
sw.WriteLine("</td>");
}
sw.WriteLine("</tr>");
}
//Add the data rows.
//foreach (DataRow myRow in datatable.Rows)
//{
// sw.WriteLine("<tr align='left' valign='top'>");
// foreach (DataColumn myColumn in datatable.Columns)
// {
// sw.WriteLine("<td align='left' valign='top'>");
// sw.WriteLine(myRow[myColumn.ColumnName].ToString());
// sw.WriteLine("</td>");
// }
// sw.WriteLine("</tr>");
//}
//Close tags.
sw.WriteLine("</table>");
sw.WriteLine("</body>");
sw.WriteLine("</html>");
//Get the string for return.
//myHtmlFile = myBuilder.ToString();
}
}
public Type SubForm
{
get
{
throw new Exception("The method or operation is not implemented.");
}
set
{
throw new Exception("The method or operation is not implemented.");
}
}
#endregion
}
}