【asp源码栏目提醒】:以下是网学会员为您推荐的asp源码-ASP NET中数据库数据导入Excel并打印 - 综合课件,希望本篇文章对您学习有所帮助。
ASP NET中数据库数据导入Excel并打印 众所周知WEB上的打印是比较困难的常见的WEB上打印的方法大概有三种 1、直接利用IE的打印功能。
一般来说这种方法可以做些扩展而不是单单的调用javascriptprint这样简单比如可以使用如下代码 这种方法可以适用于简单的数据打印对系统要求不高但不足之处在于可以控制的能力比较差比如处理分页等问题。
2、利用水晶报表或其他第三方工具如微软的Reporting service。
水晶报表或其他第三方控件的打印一般是导出到ExcelWORDPDF等再进行打印的效果比较好但编程比较复杂控制起来也不大方便而且这些工具都是要收费的。
3、将数据库的数据或要打印的内容导出到ExcelWord中去打印。
使用这种方法可以在服务端或者客户端进行。
在服务端使用的话要求服务端要安装WordExcel在客户端使用的话要求客户端在IE的安全设置上有一定要求。
使用这种方法可适应性比较强控制较好。
本文将以在
ASP.NET中使用Excel为例子介绍如何将数据导出到Excel的几种方法。
首先先介绍在服务端使用Excel的方法。
要在服务器端使用Excel必须要求服务器端安装Excel并且要求一定的访问权限。
比如需要添加到web.config中。
在本文中要给予WEB目录可写的权限。
接下来使用VS.NET 2003新建一个VB.NET的工程并添加引用。
由于我们要使用的是Excel所以添加一个关于COM的应用这里添加的是Microsoft Excel Object Library之后添加的代码如下 Imports System.Runtime.InteropServices.Marshal Imports Office Private Sub Page_LoadByVal sender As System.ObjectByVal eAs System.EventArgsHandles MyBase.Load 以COM方式处理Excel Dim oExcel As New Excel.Application Dim oBooks As Excel.WorkbooksoBook As Excel.Workbook Dim oSheets As Excel.SheetsoSheet As Excel.Worksheet Dim oCells As Excel.Range Dim sFile As StringsTemplate As String 定义一个datatable Dim dt As DataTableCTypeApplication.ItemMyDataTableDataTable sFileServer.MapPathRequest.ApplicationPathMyExcel.xls 定义模版文件 sTemplateServer.MapPathRequest.ApplicationPathMyTemplate.xls oExcel.VisibleFalse oExcel.DisplayAlertsFalse 定义一个新的工作簿 oBooksoExcel.Workbooks oBooks.OpenServer.MapPathRequest.ApplicationPathMyTemplate.xlsoBookoBooks.Item1 oSheetsoBook.Worksheets oSheetCTypeoSheets.Item1Excel.Worksheet 命名该sheet oSheet.NameFirst Sheet oCellsoSheet.Cells 调用dumpdata过程将数据导入到Excel中去 DumpDatadtoCells 保存 oSheet.SaveAssFile oBook.Close 退出Excel并且释放调用的COM资源 oExcel.Quit ReleaseComObjectoCellsReleaseComObjectoSheet ReleaseComObjectoSheetsReleaseComObjectoBook ReleaseComObjectoBooksReleaseComObjectoExcel oExcelNothingoBooksNothingoBookNothing oSheetsNothingoSheetNothingoCellsNothing System.GC.Collect Response.RedirectsFile End Sub 将DATATABLE的内容导出到Excel的单元格中去 Private Function DumpDataByVal dt As DataTableByVal oCells As Excel.RangeAs String Dim dr As DataRowaryAs Object Dim iRow As IntegeriCol As Integer 输出列标题 For iCol0 To dt.Columns.Count-1 oCells2iCol1dt.ColumnsiCol.ToString Next 将数据导出到相应的单元格 For iRow0 To dt.Rows.Count-1 drdt.Rows.ItemiRow arydr.ItemArray For iCol0 To UBoundary oCellsiRow3iCol1aryiCol.ToString Response.WritearyiCol.ToStringvbTab Next Next End Func tion End Class 在上面的代码中首先先定义了一些关于Excel的对象如applicationworkbooksheetssheet等这些都是在使用Excel的COM对象时必不可少的。
之后我们事先先定义了一个Excel的模版文件并且用Excel先打开这个模版文件再调用一个自定义的过程dumpdata。
在这个自定义的过程中将datatable中的数据逐一导入到Excel的单元格中去。
读者自己可以慢慢体会下上面的代码中是如何将datatable中的数据导出到Excel中去的。
程序运行后可以在当前的工作目录下生成名为myExcel.xls的Excel文件如下图 关注此文的读者还看过 MSN空间完美搬家到新浪博客