ASP.NET 中数据库数据导入 Excel 并打印
1、直接利用 IE 的打印功能。一般来说,这种方法可以做些扩展,而不是单单的调用
javascript:print()这样简单,比如,可以使用如下代码:
<OBJECT
id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0
width=0>
</OBJECT>
<input
type=button value=打印 onclick=document.all.WebBrowser.ExecWB(6,1)>
<input
type=button value=直接打印 onclick=document.all.WebBrowser.ExecWB(6,6)>
<input
type=button value=页面设置 onclick=document.all.WebBrowser.ExecWB(8,1)>
<input
type=button value=打印预览 onclick=document.all.WebBrowser.ExecWB(7,1)>
这种方法可以适用于简单的数据打印,对系统要求不高,但不足之处在于可以控制的
能力比较差,比如处理分页等问题。
2、利用水晶报表或其他第三方工具,如微软的 Reporting service。水晶报表或其他第
三方控件的打印,一般是导出到 Excel,WORD,PDF 等再进行打印的,效果比较好,但
编程比较复杂,控制起来也不大方便,而且这些工具都是要收费的。
3、将数据库的数据或要打印的内容导出到 Excel,Word 中去打印。使用这种方法,
可以在服务端或者客户端进行。在服务端使用的话,要求服务端要安装 Word,Excel,在
客户端使用的话,要求客户端在 IE 的安全设置上有一定要求。使用这种方法,可适应性比
较强,控制较好。本文将以在 ASP.NET 中使用 Excel 为例子,介绍如何将数据导出到 Excel
的几种方法。
首先,先介绍在服务端使用 Excel 的方法。要在服务器端使用 Excel,必须要求服务
器端安装 Excel,并且要求一定的访问权限。比如,需要添加<identity impersonate="true"/>
到 web.config 中。在本文中,要给予 WEB 目录可写的权限。
接下来,使用 VS.NET 2003 新建一个 VB.NET 的工程,并添加引用。由于我们要使
用的是 Excel,所以添加一个关于 COM 的应用,这里添加的是 Microsoft Excel Object
Library,之后,添加的代码如下:
Imports System.Runtime.InteropServices.Marshal
Imports Office
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
''''以 COM 方式处理 Excel