|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Access是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器iis假死,或者消耗掉服务器的内存导致服务器崩溃。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"value="导出到word"class="notPrint">
<inputtype="hidden"name="out_excel"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;
}
}
oXL.Visible=true;
oXL.UserControl=true;
}
//-->
</SCRIPT>
导出到Word代码
<scriptlanguage="vbscript">
SubbuildDoc
settable=document.all.data
row=table.rows.length
column=table.rows(1).cells.length
SetobjWordDoc=CreateObject("Word.Document")
objWordDoc.Application.Documents.AddtheTemplate,False
objWordDoc.Application.Visible=True
DimtheArray(20,10000)
fori=0torow-1
forj=0tocolumn-1
theArray(j+1,i+1)=table.rows(i).cells(j).innerTEXT
next
next
objWordDoc.Application.ActiveDocument.Paragraphs.Add.Range.InsertBefore("综合查询了局集")//显现表格题目
objWordDoc.Application.ActiveDocument.Paragraphs.Add.Range.InsertBefore("")
SetrngPara=objWordDoc.Application.ActiveDocument.Paragraphs(1).Range
WithrngPara
.Bold=True//将题目设为粗体
.ParagraphFormat.Alignment=1//将题目居中
.Font.Name="隶书"//设定题目字体
.Font.Size=18//设定题目字体巨细
EndWith
SetrngCurrent=objWordDoc.Application.ActiveDocument.Paragraphs(3).Range
SettabCurrent=ObjWordDoc.Application.ActiveDocument.Tables.Add(rngCurrent,row,column)
fori=1tocolumn
objWordDoc.Application.ActiveDocument.Tables(1).Rows(1).Cells(i).Range.InsertAftertheArray(i,1)
objWordDoc.Application.ActiveDocument.Tables(1).Rows(1).Cells(i).Range.ParagraphFormat.alignment=1
next
Fori=1tocolumn
Forj=2torow
objWordDoc.Application.ActiveDocument.Tables(1).Rows(j).Cells(i).Range.InsertAftertheArray(i,j)
objWordDoc.Application.ActiveDocument.Tables(1).Rows(j).Cells(i).Range.ParagraphFormat.alignment=1
Next
Next
EndSub
</SCRIPT>
3、间接在IE中翻开,再存为EXCEL文件
把读出的数据用<table>格局,在网页中显现出来,同时,加高低一句便可把EXCEL表在客客户端显现。
<%response.ContentType="application/vnd.ms-excel"%>
注重:显现的页面中,只把<table>输入,最好不要输入其他表格之外的信息。
4、导出以半角逗号离隔的csv
用fso办法天生文本文件的办法,天生一个扩大名为csv文件。此文件,一行即为数据表的一行。天生数据表字段用半角逗号离隔。(有关fso天生文本文件的办法,在此就不做先容了)
CSV文件先容(逗号分开文件)
选择该项体系将创立一个可供下载的CSV文件;CSV是最通用的一种文件格局,它能够十分简单地被导进各类PC表格及数据库中。
请注重即便选择表格作为输入格局,仍旧能够将了局下载CSV文件。在表格输入屏幕的底部,显现有"CSV文件"选项,点击它便可下载该文件。
假如您把扫瞄器设置为将您的电子表格软件与文本(TXT)/逗号分开文件(CSV)相干联,当您下载该文件时,该文件将主动翻开。下载上去后,假如当地已安装EXCEL,点击此文件,便可主动用EXCEL软件翻开此文件。减少客户内IT专业人才缺乏带来的影响。ASP的客户员工利用浏览器进入相关的应用软件,简单易用,无需专业技术支持。 |
|