DataGridView HTML出力(C#/VB.NET)
2010年05月28日
DataGridViewにHTMLファイル出力(保存)メソッドを追加するサンプル(ソース/コード)です。こちらの DataGridViewに便利なメソッドを追加するサンプル にメソッドを追加してお試し頂けます。少し修正すればこのサンプルだけで使用出来ます。DataGridViewに便利なメソッドを追加するその他のサンプルはこちらです。
DataGridView EXCEL読込(C#/VB.NET)
DataGridView EXCEL出力(C#/VB.NET)
DataGridView CSV読込(C#/VB.NET)
DataGridView CSV出力(C#/VB.NET)
DataGridView その他のサンプルソース
' -----------------------------------------------------------
' DataGridViewをHTML出力するサンプル(VB.NET/VS2005)
Public Sub SaveHtml(ByVal fp As String)
' HTMLファイルオープン
Dim sw As IO.StreamWriter = _
New IO.StreamWriter(fp, False, _
System.Text.Encoding.GetEncoding("SHIFT-JIS"))
' HTMLファイル書込(ヘッダー部)
sw.WriteLine("<html>")
sw.WriteLine("<head>")
sw.WriteLine("<meta http-equiv=""Content-Language"" ")
sw.WriteLine("content=""ja"">")
sw.WriteLine("<meta http-equiv=""Content-Type"" ")
sw.WriteLine("content=""text/html;charset=shift_jis"">")
sw.WriteLine("<title>DataGridView(VB.NET)</title>")
sw.WriteLine("</head>")
sw.WriteLine("<body>")
sw.WriteLine("<table border=""1"" cellspacing=""0"" ")
sw.WriteLine("style=""table-layout:fixed;"">")
For r As Integer = 0 To Me.Rows.Count - 1
' HTMLファイル書込(各行)
sw.Write("<tr>")
For c As Integer = 0 To Me.Columns.Count - 1
' DataGridViewのセルのデータ取得
Dim dt As String = ""
If Me.Rows(r).Cells(c).Value _
Is Nothing = False Then
dt = Me.Rows(r).Cells(c).Value.ToString()
End If
' HTMLエンコード
If dt = "" Then dt = " "
dt = dt.Replace("&", "&")
dt = dt.Replace("<", "<")
dt = dt.Replace(">", ">")
dt = dt.Replace(" ", " ")
' HTMLファイル書込(各セル)
sw.Write("<td>")
sw.Write(dt)
sw.Write("</td>")
Next
' HTMLファイル書込(各行)
sw.Write("</tr>")
sw.Write(vbCrLf)
Next
' HTMLファイル書込(フッター部)
sw.WriteLine("</table>")
sw.WriteLine("</body>")
sw.WriteLine("</html>")
' HTMLファイルクローズ
sw.Close()
End Sub
' -----------------------------------------------------------
// ----------------------------------------------------------
// DataGridViewをHTML出力するサンプル(C#.NET/VS2005)
public void SaveHtml(String fp)
{
// HTMLファイルオープン
StreamWriter sw =
new StreamWriter(fp, false,
System.Text.Encoding.GetEncoding("SHIFT-JIS"));
// HTMLファイル書込(ヘッダー部)
sw.WriteLine("<html>");
sw.WriteLine("<head>");
sw.WriteLine("<meta http-equiv=\"Content-Language\" ");
sw.WriteLine("content=\"ja\">");
sw.WriteLine("<meta http-equiv=\"Content-Type\" ");
sw.WriteLine("content=\"text/html;charset=shift_jis\">");
sw.WriteLine("<title>DataGridView(C#.NET)</title>");
sw.WriteLine("</head>");
sw.WriteLine("<body>");
sw.WriteLine("<table border=\"1\" cellspacing=\"0\" ");
sw.WriteLine("style=\"table-layout:fixed;\">");
for (int r = 0; r <= this.Rows.Count - 1; r++)
{
// HTMLファイル書込(各行)
sw.Write("<tr>");
for (int c = 0; c <= this.Columns.Count - 1; c++)
{
// DataGridViewのセルのデータ取得
String dt = "";
if (this.Rows[r].Cells[c].Value != null)
{
dt = this.Rows[r].Cells[c].Value.
ToString();
}
// HTMLエンコード
if( dt == "" ) dt = " ";
dt = dt.Replace("&", "&");
dt = dt.Replace("<", "<");
dt = dt.Replace(">", ">");
dt = dt.Replace(" ", " ");
// HTMLファイル書込(各セル)
sw.Write("<td>");
sw.Write(dt);
sw.Write("</td>");
}
// HTMLファイル書込(各行)
sw.Write("</tr>");
sw.Write("\n");
}
// HTMLファイル書込(フッター部)
sw.WriteLine("</table>");
sw.WriteLine("</body>");
sw.WriteLine("</html>");
// HTMLファイルクローズ
sw.Close();
}
// ----------------------------------------------------------