Windows XP pro
Visual Studio 2005 (ASP.NET Webアプリケーション)
MS Office Excel 2003,2007
—————————————————
■内容
スタイルシートで背景色や罫線を変更しているGridViewコントロール
の、データ・CSSをExcelに出力する。

‘出力ファイル名
Dim exportFileNm as String = “testFile”

‘CSSファイルパス
Dim cssFilePath as String = Server.MapPath(“.”) & “\App_Themes\Themes\Report_excel.css”

‘ASP.NETサーバコントロールの出力ストリームに書込む、Htmlテキストを格納
Dim writer As HtmlTextWriter

‘MyBase==System.Web.UI.Page
MyBase.Response.ContentType = “application/vnd.ms-excel”
MyBase.Response.AppendHeader(“content-disposition”, “attachment;filename=” & exportFileNm & “.xls”)
writer = New HtmlTextWriter(MyBase.Response.Output)
Response.ContentEncoding = System.Text.Encoding.GetEncoding(“Shift_JIS”)
Dim sReader As New StreamReader(cssFilePath)
Response.Write(“<meta http-equiv=””Content-Type”” content=””text/html; charset=Shift_JIS””>”)

‘スタイルシート埋め込み出力
Response.Write(“<style><!–table”)
Response.Write(sReader.ReadToEnd())
Response.Write(“–></style>” & vbNewLine)
sReader.Close()
sReader.Dispose()

‘検索条件などの本文書込み
Response.Write(“<table>”)
Response.Write(“<tr>”)
Response.Write(“<td>グリッドビューの結果を下に表示します。</td>”)  ‘タイトル出力
Response.Write(“</tr>”)
Response.Write(“</table>”)

‘グリッドビュー(GridView1)の1セルに、複数のCSSが設定されている場合は纏める
‘ex)ここではセルに2つのCSS「cssA」「cssB」がある場合は、「cssA_cssB」という名称に纏める
‘  この場合、CSSには予め「cssA_cssB」を定義しておく必要がある
For Each gr As GridViewRow In GridView1.Rows
    For Each tc As TableCell In gr.Cells
        tc.CssClass = tc.CssClass.Replace(” “, “_”)
    Next
Next

‘グリッドビュー内容読込み
Me.GridView1.RenderControl(writer)
writer.Flush()
Response.End()
writer.Close()

Leave a Reply

*

カレンダー
2010年4月
« 3月   5月 »
 1234
567891011
12131415161718
19202122232425
2627282930