asp excel导出类

  1. 导出Excel报表的类asp学习网 来自:leadbbs 作者:一千零一个愿望 
  2. 类文件Excel.asp 
  3. <
  4. ''/**************************************/ 
  5. ''/* written by yzcangel */ 
  6. ''/* version : v1.0 */ 
  7. ''/* createdata:2005-09-01 */ 
  8. ''/* lastmodifydate:2005-09-01 */ 
  9. ''/* Eamil:yzcangel@sohu.com */ 
  10. ''/* QQ:80214600 */ 
  11. ''/**************************************/ 
  12. ''类开始 
  13. Class Cls_Excel 
  14. ''声明常量、变量 
  15. Private objRs 
  16. Private objExcelApp 
  17. Private objExcelBook 
  18. Private Conn 
  19. Private Sql 
  20. Private Title 
  21. Private FieldName 
  22. Private FieldValue 
  23. Private FilePath 
  24. Private FileName 
  25. Private Col 
  26. Private Row 
  27. ''Class_Initialize 类的初始化 
  28. Private Sub Class_Initialize() 
  29. Row = 1 ''设定生成的Excel默认起始行 
  30. Col = 1 ''设定生成的Excel默认起始列 
  31. End Sub 
  32. ''ReportConn得到数据库连接对象 
  33. Public Property Let ReportConn(ByVal objConn) 
  34. Set Conn = objConn 
  35. End Property 
  36. ''ReportSql得到SQL字符串 
  37. Public Property Let ReportSql(ByVal strSql) 
  38. Sql = strSql 
  39. End Property 
  40. ''ReportTitle得到所要生成报表的标题 
  41. Public Property Let ReportTitle(ByVal strTitle) 
  42. Title = strTitle 
  43. End Property 
  44. ''RsFieldName得到所要生成报表的列名称 
  45. Public Property Let RsFieldName(ByVal strName) 
  46. FieldName = Split(strName,"||") 
  47. End Property 
  48. ''RsFieldValue得到所要生成报表的列值的数据库标识字段 
  49. Public Property Let RsFieldValue(ByVal strValue) 
  50. FieldValue = Split(strValue,"||") 
  51. End Property 
  52. ''SaveFilePath得到Excel报表的保存路径 
  53. Public Property Let SaveFilePath(ByVal strFilePath) 
  54. FilePath = strFilePath 
  55. End Property 
  56. ''SaveFileName得到Excel报表的保存文件名 
  57. Public Property Let SaveFileName(ByVal strFileName) 
  58. FileName = strFileName 
  59. End Property 
  60. ''ColumnOffset得到Excel报表默认起始列 
  61. Public Property Let ColumnOffset(ByVal ColOff) 
  62. If ColOff > 0 then 
  63. Col = ColOff 
  64. Else 
  65. Col = 1 
  66. End If 
  67. End Property 
  68. ''RowOffset得到Excel报表默认起始行 
  69. Public Property Let RowOffset(ByVal RowOff) 
  70. If RowOff > 0 then 
  71. Row = RowOff 
  72. Else 
  73. Row = 1 
  74. End If 
  75. End Property 
  76. ''生成报表 
  77. Sub Worksheet() 
  78. Dim iCol,iRow,Num 
  79. iCol = Col 
  80. iRow = Row 
  81. Num = 1 
  82. Call DBRs() 
  83. Call ExcelApp() 
  84. Set objExcelBook = objExcelApp.Workbooks.Add 
  85. ''写Excel标题 
  86. ''-------------------------------------------------------- 
  87. objExcelBook.WorkSheets(1).Cells(iRow,iCol).Value = Title 
  88. ''-------------------------------------------------------- 
  89. ''写Excel各列名 
  90. ''-------------------------------------------------------- 
  91. iRow = Row + 1 
  92. objExcelBook.WorkSheets(1).Cells(iRow,iCol).Value = "序号" 
  93. iColiCol = iCol + 1 
  94. For i = 0 to Ubound(FieldName) 
  95. objExcelBook.WorkSheets(1).Cells(iRow,iCol).Value = FieldName(i) 
  96. iColiCol = iCol + 1 
  97. Next 
  98. ''-------------------------------------------------------- 
  99. ''写Excel各列值 
  100. ''-------------------------------------------------------- 
  101. iRow = Row + 2 
  102. Do While Not objRS.EOF 
  103. iCol = Col 
  104. objExcelBook.WorkSheets(1).Cells(iRow,iCol).Value = Num 
  105. iColiCol = iCol + 1 
  106. For i = 0 to Ubound(FieldValue) 
  107. If IsNull(objRS(FieldValue(i))) then 
  108. objExcelBook.WorkSheets(1).Cells(iRow,iCol).Value = "" 
  109. Else 
  110. objExcelBook.WorkSheets(1).Cells(iRow,iCol).Value = objRS(FieldValue(i)) 
  111. End If 
  112. iColiCol = iCol + 1 
  113. Next 
  114. objRS.MoveNext 
  115. iRowiRow = iRow + 1 
  116. NumNum = Num + 1 
  117. Loop 
  118. ''-------------------------------------------------------- 
  119. Call SaveWorksheet() 
  120. End Sub 
  121. ''创建Adodb.Recordset对象 
  122. Sub DBRs() 
  123. If IsObject(objRs) = True Then Exit Sub 
  124. Set objRs = Server.CreateObject("Adodb.Recordset") 
  125. objRs.Open Sql,Conn,1,1 
  126. If Err.Number > 0 Then 
  127. Response.End 
  128. End If 
  129. End Sub 
  130. ''创建Excel.Application对象 
  131. Sub ExcelApp() 
  132. If IsObject(objExcelApp) = True Then Exit Sub 
  133. Set objExcelApp = Server.CreateObject("Excel.Application") 
  134. objExcelApp.Application.Visible = True 
  135. If Err.Number > 0 Then 
  136. Response.End 
  137. End If 
  138. End Sub 
  139. ''保存Excel报表 
  140. Sub SaveWorksheet() 
  141. objExcelbook.SaveAs FilePath & FileName & ".xls" 
  142. If Err.Number = 0 Then 
  143. Call Message("导出数据成功!") 
  144. Else 
  145. Call Message("导出数据失败!") 
  146. End If 
  147. End Sub 
  148. ''信息提示 
  149. Sub Message(msg) 
  150. Response.Write("<script language=''JavaScript''>") 
  151. Response.Write("alert(''"&msg&"'');") 
  152. Response.Write("</script>") 
  153. Response.End 
  154. End Sub 
  155. ''Class_Terminate 类注销 
  156. Private Sub Class_Terminate() 
  157. objExcelApp.Application.Quit 
  158. Set objExcelBook = Nothing 
  159. Set objExcelApp = Nothing 
  160. objRs.Close 
  161. Set objRs = Nothing 
  162. End Sub 
  163. ''类结束 
  164. End Class 
  165. %> 
  166. 示例文件test.asp 
  167. <!--#include file="Lib/conn.asp"--> 
  168. <!--#include file="Excel.asp"--> 
  169. <
  170. Dim MyExcel 
  171. Set MyExcel = new Cls_Excel 
  172. With MyExcel 
  173. .ReportConn = conn 
  174. .ReportSql = "SELECT b.pm AS A_PM, b.dqccl AS A_Num, b.dqccl * 100 / SUM(a.dqccl) AS A_Percent FROM dbo.V_DQTJWHP a CROSS JOIN dbo.V_DQTJWHP b GROUP BY b.pm, b.dqccl order by A_Num desc" 
  175. .ReportTitle = "MyExcel 报表" 
  176. .RsFieldName = "品名||数量||百分比" 
  177. .RsFieldValue = "A_PM||A_Num||A_Percent" 
  178. .SaveFilePath = "d:/" 
  179. .SaveFileName = "Excel" 
  180. .ColumnOffset = 1 
  181. .RowOffset = 1 
  182. End With 
  183. MyExcel.Worksheet() 
  184. MyExcel = Null 
  185. Set MyExcel = Nothing 
  186. %>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
ASP.NET中,我们可以使用多种方法来导出Excel文件。 一种常用的方法是使用Microsoft的Interop库,将数据导出Excel文件。我们首先需要安装Excel程序,并确保机器上已经安装了Microsoft Office。然后,我们可以通过创建一个Excel Application对象来访问Excel应用程序。我们可以创建一个工作簿(Workbook)和一个工作表(Worksheet),然后将数据写入工作表。最后,我们可以使用SaveAs方法将工作簿保存为Excel文件。这种方法的缺点是需要机器上安装Office,而且在服务器上可能会遇到权限问题。 另一种方法是使用开源的库,比如EPPlus。EPPlus是一个用于处理Excel文件的.Net库,可以在不安装Office的情况下读取和写入Excel文件。我们可以使用EPPlus库创建一个Excel包(ExcelPackage)对象,并创建一个工作表。然后,我们可以在工作表中写入数据并保存为Excel文件。这种方法不仅适用于ASP.NET,而且在服务器上也没有Office依赖的问题。 还有一种简单的方法是将数据导出为CSV(逗号分隔值)文件。CSV文件是文本文件,使用逗号分隔每个值。我们可以使用StreamWriter创建一个文本文件,并将数据按照CSV格式写入文件。CSV文件可以在Excel中直接打开,并且不需要额外的库或软件。 以上是ASP.NET导出Excel的几种方法。根据具体需求和平台限制,我们可以选择适合的方法来导出Excel文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值