胖在一方

出得厅堂入得厨房的胖子

导航

Web上导出excel文件和txt文件

Posted on 2006-09-12 17:25  胖在一方  阅读(926)  评论(0)    收藏  举报
 1 Response.AppendHeader("Content-Disposition""attachment;filename=Excel.xls")
 2 

 3         Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312")
 4         Response.ContentType = "application/ms-excel"

 5         Dim tw As New System.IO.StringWriter
 6         Dim hw As New
 HtmlTextWriter(tw)
 7 
        dgDrv.RenderControl(hw)
 8 
        Response.Write(tw.ToString())
 9 
        Response.End()
10 

11 ---------------------
12 导出txt文件
13         Dim ds As New
 DataSet
14         Dim row As
 DataRow
15         Dim txtWriter As New
 StringWriter
16 

17         If Not Session(SessionConst) Is Nothing Then
18             ds = CType(Session(SessionConst), DataSet)
19             For Each row In
 ds.Tables(ICLog).Rows
20 
                txtWriter.WriteLine(row(ICImportLog.DBCOL_ERRRECORD))
21             Next

22         End If
23         txtWriter.Flush()
24 
        Response.Clear()
25         Page.Response.AddHeader("Content-Disposition"String.Format("attachment;filename=ahwzrec{0}.txt", Today.ToString("yyyy-MM-dd"
)))
26 
        Response.Write(txtWriter.ToString())
27 
        Response.End()
28 

如果是附件名是中文的话
 Page.Response.AddHeader("Content-Disposition"String.Format("attachment;filename={0}.txt", HttpUtility.UrlEncode("中文", System.Text.Encoding.UTF8)))
       

ps:web上导出有象身份证明号码这样的字段的解决办法
字段后面加上一个 "  " 否则excel会认为是数字,而把他自动转换成科学计数法来表示。
方法是不是很BT   :p
例如:
   Select dabh || ' ' as dabh,sfzmhm || '  ' as sfzmhm ....


2006-12-20 最新bt的问题

其他页面导出数据都是ok的,但是有个页面import出来的就是乱码,
后来指定了 Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8")
这个页面是好了,但是其他页面竟然变成韩文了
用Notepad 打开导出的文件,都是html代码,都是正常的, 郁闷啊
后来我也做了个bt的方法,
不设置Response.ContentEncoding 就用默认的
但是有乱码的那一列 在后面增加一个空格(可以在sql语句中处理,也可以在程序中处理)
后来就哦卡了


在此记录一下  太bt了,搞不懂为什么