大家可能觉得上面的代码比较复杂,因为上面对于对打印要求比较高的应用,是十分有效的。如果只是单单对数据进行导出,还可以使用简单的格式,比如使用以下的代码:
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进行操作的方法,各有优劣,希望大家可以根据实际情况选用。
ASP.NET中数据库数据导入Excel并打印(2)-.NET教程,Asp.Net开发
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » ASP.NET中数据库数据导入Excel并打印(2)-.NET教程,Asp.Net开发
相关推荐
-      根据数据表中数据,生成Powerpoint幻灯片-ASP教程,数据库相关
-      使用用VB处理MYSQL数据库中二进制数据问题-.NET教程,VB.Net语言
-      DataGrid中的按钮反选事件与NamingContainer(命名容器)-downmoon-ASP教程,数据库相关
-      关于DataGridView中如何接收处于编辑状态下的当前信息-ASP教程,数据库相关
-      ActiveMQ4.1+Spring2.0的POJO JMS方案(上)-.NET教程,数据库应用
-      ASP.NET 2.0中直接将Access数据库导入到Excel文件中-.NET教程,Asp.Net开发
-      DataGrid的多行提交-.NET教程,数据库应用
-      一个简单的asp数据库操作类-ASP教程,数据库相关