仓酷云

标题: ASP网站制作之ASP导出Excel数据的四种办法 [打印本页]

作者: 再见西城    时间: 2015-1-16 23:36
标题: ASP网站制作之ASP导出Excel数据的四种办法
由于ASP还是一种Script语言所没除了大量使用组件外,没有办法提高其工作效率。它必须面对即时编绎的时间考验,同时我们还不知其背后的组件会是一个什么样的状况;excel|导出excel|数据1、利用OWC

  甚么是OWC?

  OWC是OfficeWebCompent的缩写,即Microsoft的OfficeWeb组件,它为在Web中绘制图形供应了天真的同时也是最基础的机制。在一个intranet情况中,假如能够假定客户机上存在特定的扫瞄器和一些功效壮大的软件(如IE5和Office2000),那末就有才能使用OfficeWeb组件供应一个交互式图形开辟情况。这类形式下,客户端事情站将在全部义务平分担很年夜的比重。



<%OptionExplicit
ClassExcelGen
PrivateobjSpreadsheet
PrivateiColOffset

PrivateiRowOffset
SubClass_Initialize()
SetobjSpreadsheet=Server.CreateObject("OWC.Spreadsheet")
iRowOffset=2
iColOffset=2
EndSub

SubClass_Terminate()
SetobjSpreadsheet=NothingCleanup
EndSub

PublicPropertyLetColumnOffset(iColOff)
IfiColOff>0then
iColOffset=iColOff
Else
iColOffset=2
EndIf
EndProperty

PublicPropertyLetRowOffset(iRowOff)
IfiRowOff>0then
iRowOffset=iRowOff
Else
iRowOffset=2
EndIf
EndPropertySubGenerateWorksheet(objRS)
PopulatestheExcelworksheetbasedonaRecordsetscontents
Startbydisplayingthetitles
IfobjRS.EOFthenExitSub
DimobjField,iCol,iRow
iCol=iColOffset
iRow=iRowOffset
ForEachobjFieldinobjRS.Fields
objSpreadsheet.Cells(iRow,iCol).Value=objField.Name
objSpreadsheet.Columns(iCol).AutoFitColumns
设置Excel内外的字体
objSpreadsheet.Cells(iRow,iCol).Font.Bold=True
objSpreadsheet.Cells(iRow,iCol).Font.Italic=False
objSpreadsheet.Cells(iRow,iCol).Font.Size=10
objSpreadsheet.Cells(iRow,iCol).Halignment=2居中
iCol=iCol+1
NextobjField
Displayallofthedata
DoWhileNotobjRS.EOF
iRow=iRow+1
iCol=iColOffset
ForEachobjFieldinobjRS.Fields
IfIsNull(objField.Value)then
objSpreadsheet.Cells(iRow,iCol).Value=""
Else
objSpreadsheet.Cells(iRow,iCol).Value=objField.Value
objSpreadsheet.Columns(iCol).AutoFitColumns
objSpreadsheet.Cells(iRow,iCol).Font.Bold=False
objSpreadsheet.Cells(iRow,iCol).Font.Italic=False
objSpreadsheet.Cells(iRow,iCol).Font.Size=10
EndIf
iCol=iCol+1
NextobjField
objRS.MoveNext
Loop
EndSubFunctionSaveWorksheet(strFileName)

Savetheworksheettoaspecifiedfilename
OnErrorResumeNext
CallobjSpreadsheet.ActiveSheet.Export(strFileName,0)
SaveWorksheet=(Err.Number=0)
EndFunction
EndClass

DimobjRS
SetobjRS=Server.CreateObject("ADODB.Recordset")
objRS.Open"SELECT*FROMxxxx","Provider=SQLOLEDB.1;PersistSecurity

Info=True;UserID=xxxx;Password=xxxx;InitialCatalog=xxxx;Datasource=xxxx;"
DimSaveName
SaveName=Request.Cookies("savename")("name")
DimobjExcel
DimExcelPath
ExcelPath="Excel"&SaveName&".xls"
SetobjExcel=NewExcelGen
objExcel.RowOffset=1
objExcel.ColumnOffset=1
objExcel.GenerateWorksheet(objRS)
IfobjExcel.SaveWorksheet(Server.MapPath(ExcelPath))then
Response.Write"<html><bodybgcolor=gainsborotext=#000000>已保留为Excel文件.

<ahref="&server.URLEncode(ExcelPath)&">下载</a>"
Else
Response.Write"在保留过程当中有毛病!"
EndIf
SetobjExcel=Nothing
objRS.Close
SetobjRS=Nothing
%>



  2、用Excel的Application组件在客户端导出到Excel或Word

  注重:两个函数中的“data“是网页中要导出的table的id

<inputtype="hidden"name="out_word"onclick="vbscript:buildDoc"value="导出到word"class="notPrint">
<inputtype="hidden"name="out_excel"onclick="AutomateExcel();"value="导出到excel"class="notPrint">

  导出到Excel代码

<SCRIPTLANGUAGE="javascript">
<!--
functionAutomateExcel()
{
//StartExcelandgetApplicationobject.
varoXL=newActiveXObject("Excel.Application");
//Getanewworkbook.
varoWB=oXL.Workbooks.Add();
varoSheet=oWB.ActiveSheet;
vartable=document.all.data;
varhang=table.rows.length;

varlie=table.rows(0).cells.length;

//Addtableheadersgoingcellbycell.
for(i=0;i<hang;i++)
{
for(j=0;j<lie;j++)
{
oSheet.Cells(i+1,j+1).value=table.rows(i).cells(j).innerText;
}

}
</p>只要你想学,就没什么优缺点,上面那位大哥已经把网上的评论说了,但我认为想学哪个都一样,不然它就不可能在当今时代数字艺术方面存活到今天
作者: 飘灵儿    时间: 2015-1-17 20:30
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。
作者: 若天明    时间: 2015-1-30 11:45
另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)
作者: admin    时间: 2015-2-2 22:20
ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。
作者: 莫相离    时间: 2015-2-8 13:49
掌握asp的特性而且一定要知道为什么。
作者: 小女巫    时间: 2015-2-25 15:30
下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。
作者: 仓酷云    时间: 2015-3-7 23:06
Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write
作者: 山那边是海    时间: 2015-3-15 16:11
Session:这个存储跟客户端会话过程的数据,默认20分钟失效
作者: 兰色精灵    时间: 2015-3-22 02:09
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
作者: 活着的死人    时间: 2015-3-22 02:09
学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2