GridviewをExcel形式で書き出す
GridviewをExcel形式で書き出すコードを作成してみました。
Protected Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
'書き込むファイルが既に存在している場合は、上書きする
Dim sw As New System.IO.StreamWriter("C:\××\××.xls", _
False, _
System.Text.Encoding.GetEncoding("shift_jis"))
Dim HW = New HtmlTextWriter(sw)
'TemplateFieldを非表示(Excel書出しエラーを回避)
Me.GridView2.Columns(0).Visible = False
Me.GridView2.Visible = True
Me.GridView2.RenderControl(HW)
'閉じる
sw.Close()
End Sub
この方法で書き出されたExcelファイルを開いてみると
「開こうとしているファイル××の形式は、ファイル拡張子が示す形式と異なります云々・・・。」
と出て、「はい」で無理矢理開くとExcel形式で表示されますが
このファイルはどうやらWebページ形式のようです。
ネットで調べたところ以下のような記載を見つけました。
>なぜなら、上記のやり方では、htmlを無理やりExcelで開いているに過ぎないからです。
>(作成されるファイルを保存してテキストエディタで開けば、中身がhtmlであることが確認できます。)
たしかに上記のとおりになってしまっているのですが
このファイルを、Excel97-2002形式で保存することは出来ないのでしょうか?