热门文章
阿标在线 动力3.62HTML生成3.62网站文件说明
动力3.62整合动网7.0 SP2插
MDAC2.8 下载!
动力3.62版 防止垃圾留言
动力3.6全方位改动方法
让3.62不同频道实现不同风
把3.62首页登陆为横向代码
动易3.6首页随机FLASH修改
362首页和文章频道页图文幻
个性化修改3.6宝典
3.62轻易实现网摘功能
如何正确统计中文字数?
弹出JAVASCRIPT语法错误对
后台使“网站顶部LOGO地址
最新图片文章横向移动的修
html 生成艺术字
3.6 Sp2 Logo和Banner及广
日期值的计算
汉字转拼音
首页“图片更新”图片滚动
简体中文转换为繁体中文的
如何在css中定义链接的下划
Web页面数据导出方法概述之导出excel
[ 录入:阿标 | 点击数: | 更新时间:2005-1-18 16:13:00]
前言:
随着BS体系结构的广泛使用,相对应的数据保存技术也要改进,对应Web页面,也就是我们通常认识到的HTML文件,由标示关键字与数据混合组成的文件。Web页面数据导出简单地说,就是分离数据与格式,同时保存数据为另外一种格式。
正文:
分析HTTP Response等文件头信息,对如何处理Web页面非常有用,下面简单地介绍几种常用的方法,算是在技术上学习,非理论上学习。
下面的代码分析如何通过修改http头文件,产生excel的文件供用户下载,以达到数据导出的功能。这种非实际在服务器端生成文件的优点就是,对于并发请求该页面的用户来说不会发生服务器端文件同名覆盖的问题!一般的解决方法有根据用户名,ip,随机数等。
Dim resp As HttpResponse
Dim colCount As Integer = MyDataGrid.Columns.Count - 1
resp = Page.Response
resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312") '解决中文乱码之关键
'resp.Charset = "utf-8"
'resp.AddFileDependency(FileName)
'resp.ContentType = "Text/HTML"
''resp.AppendHeader("Content-Type", "text/html; charset=gb2312")
resp.ContentType = "Text/csv" '通过修改文件类型可以让用户下载为csv类型的文件,修改text/**内容
resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName + ".csv") '必要,做成下载文件
'实际从下载的保存文件类型来看,可以使txt,可以html,可以xls,用户未必知道?且保存为xls的文件,数据包含在一列内
Dim colHeaders As String = ""
'Imports System.Text
Dim strItems As StringBuilder = New StringBuilder
Dim myCol As DataGridColumn
Dim i As Integer
For i = 0 To colCount
myCol = MyDataGrid.Columns(i)
If myCol.Visible = True Then
colHeaders = colHeaders & myCol.HeaderText.ToString & ","
End If
Next
If colHeaders.Length > 0 Then
colHeaders = colHeaders.Substring(0, colHeaders.LastIndexOf(","))
End If
colHeaders = colHeaders & Chr(13) & Chr(10)
resp.Write(colHeaders)
Dim colRow As String
Dim item As DataGridItem
For Each item In MyDataGrid.Items
resp.Write(FormatExportRow(colCount, item, MyDataGrid))
‘将数据写入对应的单元格
Next item
resp.End()
也有描述如何将水晶报表导出为PDF文件保存的代码,但是这种方式以及具体实现的过程,还在研究中。基本的想法是可以通过pdf然后利用插件打开,或者直接保存PDF