当前位置:首页>>开发编程>>VS.NET>>新闻内容
ASP.NET中数据库数据导入Excel并打印
作者:佚名 发布时间:2004-12-20 11:44:00 文章来源:天极网

    大家可能觉得上面的代码比较复杂,因为上面对于对打印要求比较高的应用,是十分有效的。如果只是单单对数据进行导出,还可以使用简单的格式,比如使用以下的代码:

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 Dim dt As DataTable = CType(Application.Item("MyDataTable"), DataTable)

 Response.ContentType = "application/ms-Excel"

 Response.AddHeader("Content-Disposition", "inline;filename=test.xls")

 Response.Write(ConvertDtToTDF(dt))
End Sub

Private Function ConvertDtToTDF(ByVal dt As DataTable) As String
 Dim dr As DataRow, ary() As Object, i As Integer
 Dim iCol As Integer

 ' 输出列标题
 For iCol = 0 To dt.Columns.Count - 1
  Response.Write(dt.Columns(iCol).ToString & vbTab)
 Next
 Response.Write(vbCrLf)

 '输出数据
 For Each dr In dt.Rows
  ary = dr.ItemArray
  For i = 0 To UBound(ary)
   Response.Write(ary(i).ToString & vbTab)
  Next
  Response.Write(vbCrLf)
 Next
End Function
End Class

  在上面的代码中,首先将浏览器的输出类型设置为application/ms-Excel,并设置Excel的输出类型是在浏览器中输出,默认的名字为test.xls,之后,将调用自定义的过程,该自定义的过程将一个datatable里的数据以字符串流的形式输出,其中每个datatable里的数据之间以TAB制表符分隔,最后再输出到浏览器,输出效果如下图:


  上面的这种方法,表现的形式比较简单,但也可以满足数据导出的基本要求。那如果要进一步修饰一下的话,要如何做呢?这里提供一个方法,可以将要导出的数据先绑定到datagrid,然后再打印该datagrid。这时就可以对要打印出来的datagrid进行格式化,设置datagrid的format等属性。代码如下:

Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
 Dim dt As DataTable = CType(Application.Item("MyDataTable"), DataTable)

 Response.ContentType = "application/ms-Excel"

 Response.AddHeader("Content-Disposition", "inline;filename=test.xls")

 DataGrid1.DataSource = dt
 DataGrid1.DataBind()
 DataGrid1.RenderControl(writer)
End Sub

  打印出来的效果如下图:


  如果要转到Word里面打印的话,也同样可以用上面的方法,只需要将其中的代码改成:

Response.ContentType = "application/ms-word"
Response.AddHeader("Content-Disposition", "inline;filename=test.doc")

  最后,来看一下,如何调用客户端的Excel进行打印,就是让客户一点击"打印"的按钮,就可以自动打开客户端的Excel,将要打印的内容导入。要实现这样的效果,必须要求客户端的IE浏览器设置中,在其中的"安全-本地Intranet-自定义级别中",将"下载未签名ACTIVX"中设置为启动或提示。代码如下:

<script language="vbscript">
 Sub exportbutton_onclick
  Dim sHTML, oExcel, oBook
  SHTML = document.all.item("DataGrid1").outerhtml
  Set oExcel = CreateObject("Excel.Application")
  Set oBook = oExcel.Workbooks.Add
  oBook.HTMLProject.HTMLProjectItems("Sheet1").Text = sHTML
  oBook.HTMLProject.RefreshDocument
  oExcel.Visible = true
  oExcel.UserControl = true
 End Sub
</script>

  在CODE-BEHIND的代码中,只需要这样写就可以了:

Dim dt As DataTable = CType(Application.Item("MyDataTable"), DataTable)
DataGrid1.DataSource = dt
DataGrid1.DataBind()

  当运行程序时,用户只需要点击EXPORT TO Excel的按钮,此时IE浏览器会提示是否允许ACTIVX控件交互,则选择"是",就可以打开客户端的Excel进行打印操作了。

  以上是在ASP.NET中,常用的几种对Excel进行操作的方法,各有优劣,希望大家可以根据实际情况选用。



[首页]    [上一页]    [下一页]    [末页]    
最新更新
·C#中使用Split分隔字符串的技
·VS2008开发中Windows Mobile
·PC机和移动设备上绝对路径的
·C#程序加壳的方法(使用Sixx
·当前上下文中不存在名称Conf
·请插入磁盘:Visual Studio 2
·用VS.NET读取Flash格式文件信
·在ASP.NET中使用AJAX的简单方
·VS.NET 2005中常用的一些代码
·安装VS.NET 2005 SP1补丁全攻
相关信息
·在ASP.NET中使用AJAX的简单方法
·ASP.NET后台代码实现XmlHttp跨域访问
·ASP.NET取得当前页面的完整URL
·如何在ASP.NET程序里面执行DOS命令
·IIS5IIS6IIS7的ASP.net请求处理过程比较
·ASP.NET备份SQL Server数据库的方法
·让网站图片“另存为”“无标题.bmp”的技巧
·ASP.NET GridView的分页功能
·ASP.NET实现字母+数字方式验证码
·ASP.NET采集系统万能正则表达式
画心
愚爱
偏爱
火苗
白狐
画沙
犯错
歌曲
传奇
稻香
小酒窝
狮子座
小情歌
全是爱
棉花糖
海豚音
我相信
甩葱歌
这叫爱
shero
走天涯
琉璃月
Nobody
我爱他
套马杆
爱是你我
最后一次
少女时代
灰色头像
断桥残雪
美了美了
狼的诱惑
我很快乐
星月神话
心痛2009
爱丫爱丫
半城烟沙
旗开得胜
郎的诱惑
爱情买卖
2010等你来
我叫小沈阳
i miss you
姑娘我爱你
我们都一样
其实很寂寞
我爱雨夜花
变心的玫瑰
犀利哥之歌
你是我的眼
你是我的OK绷
贝多芬的悲伤
哥只是个传说
丢了幸福的猪
找个人来爱我
要嫁就嫁灰太狼
如果这就是爱情
我们没有在一起
寂寞在唱什么歌
斯琴高丽的伤心
别在我离开之前离开
不是因为寂寞才想你
爱上你等于爱上了错
在心里从此永远有个你
一个人的寂寞两个人的错