ASP导出到Excel代码

ASP导出到Excel代码
ASP导出到Excel代码

ASP导出到Excel代码

一、使用OWC

什么是OWC?

OWC是Office Web Compent的缩写,即Microsoft的Office Web组件,它为在Web中绘制图形提供了灵活的同时也是最基本的机制。在一个intranet环境中,如果可以假设客户机上存在特定的浏览器和一些功能强大的软件(如IE5和Office 2000),那么就有能力利用Office Web组件提供一个交互式图形开发环境。这种模式下,客户端工作站将在整个任务中分担很大的比重。

<%

Option Explicit

Class ExcelGen

Private objSpreadsheet

Private iColOffset

Private iRowOffset

Sub Class_Initialize()

Set objSpreadsheet = Server.CreateObject("OWC.Spreadsheet")

iRowOffset = 2

iColOffset = 2

End Sub

Sub Class_Terminate()

Set objSpreadsheet = Nothing "Clean up

End Sub

Public Property Let ColumnOffset(iColOff)

If iColOff >0 then

iColOffset = iColOff

Else

iColOffset = 2

End If

End Property

Public Property Let RowOffset(iRowOff)

If iRowOff >0 then

iRowOffset = iRowOff

Else

iRowOffset = 2

End If

End Property Sub GenerateWorksheet(objRS)

"Populates the Excel worksheet based on a Recordset"s contents

"Start by displaying the titles

If objRS.EOF then Exit Sub

Dim objField, iCol, iRow

iCol = iColOffset

iRow = iRowOffset

For Each objField in objRS.Fields

objSpreadsheet.Cells(iRow, iCol).V alue = https://www.360docs.net/doc/bf12334690.html,

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

Next "objField

"Display all of the data

Do While Not objRS.EOF

iRow = iRow + 1

iCol = iColOffset

For Each objField in objRS.Fields

If IsNull(objField.V alue) then

objSpreadsheet.Cells(iRow, iCol).V alue = ""

Else

objSpreadsheet.Cells(iRow, iCol).V alue = objField.V alue

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

End If

iCol = iCol + 1

Next "objField

objRS.MoveNext

Loop

End Sub Function SaveWorksheet(strFileName)

"Save the worksheet to a specified filename

On Error Resume Next

Call objSpreadsheet.ActiveSheet.Export(strFileName, 0)

SaveWorksheet = (Err.Number = 0)

End Function

End Class

Dim objRS

Set objRS = Server.CreateObject("ADODB.Recordset")

objRS.Open "SELECT * FROM xxxx", "Provider=SQLOLEDB.1;Persist Security Info=True;User ID=xxxx;Password=xxxx;Initial Catalog=xxxx;Data source=xxxx;" Dim SaveName

SaveName = Request.Cookies("savename")("name")

Dim objExcel

Dim ExcelPath

ExcelPath = "Excel\" & SaveName & ".xls"

Set objExcel = New ExcelGen

objExcel.RowOffset = 1

objExcel.ColumnOffset = 1

objExcel.GenerateWorksheet(objRS)

If objExcel.SaveWorksheet(Server.MapPath(ExcelPath)) then

"Response.Write "<html><body bgcolor="gainsboro" text="#000000">已保存为Excel文件. <a href="" & server.URLEncode(ExcelPath) & "">下载</a>"

Else

Response.Write "在保存过程中有错误!"

End If

Set objExcel = Nothing

objRS.Close

Set objRS = Nothing

%>

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

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

<input type="hidden" name="out_word" onclick="vbscript:buildDoc" value="导出到word" class="notPrint">

<input type="hidden" name="out_excel" onclick="AutomateExcel();" value="导出到excel" class="notPrint">

导出到Excel代码

<SCRIPT LANGUAGE="javascript">

<!--

function AutomateExcel()

{

// Start Excel and get Application object.

var oXL = new ActiveXObject("Excel.Application");

// Get a new workbook.

var oWB = oXL.Workbooks.Add();

var oSheet = oWB.ActiveSheet;

var table = document.all.data;

var hang = table.rows.length;

var lie = table.rows(0).cells.length;

// Add table headers going cell by cell.

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;

https://www.360docs.net/doc/bf12334690.html,erControl = true;

}

//-->

</SCRIPT>

导出到Word代码

<script language="vbscript">

Sub buildDoc

set table = document.all.data

row = table.rows.length

column = table.rows(1).cells.length

Set objWordDoc = CreateObject("Word.Document")

objWordDoc.Application.Documents.Add theTemplate, False

objWordDoc.Application.Visible=True

Dim theArray(20,10000)

for i=0 to row-1

for j=0 to column-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("")

Set rngPara = objWordDoc.Application.ActiveDocument.Paragraphs(1).Range

With rngPara

.Bold = True //将标题设为粗体

.ParagraphFormat.Alignment = 1 //将标题居中

https://www.360docs.net/doc/bf12334690.html, = "隶书" //设定标题字体

.Font.Size = 18 //设定标题字体大小

End With

Set rngCurrent = objWordDoc.Application.ActiveDocument.Paragraphs(3).Range

Set tabCurrent = ObjWordDoc.Application.ActiveDocument.Tables.Add(rngCurrent,row,column) for i = 1 to column

objWordDoc.Application.ActiveDocument.Tables(1).Rows(1).Cells(i).Range.InsertAfter theArray(i,1)

objWordDoc.Application.ActiveDocument.Tables(1).Rows(1).Cells(i).Range.ParagraphFormat.ali gnment=1

next

For i =1 to column

For j = 2 to row

objWordDoc.Application.ActiveDocument.Tables(1).Rows(j).Cells(i).Range.InsertAfter theArray(i,j)

objWordDoc.Application.ActiveDocument.Tables(1).Rows(j).Cells(i).Range.ParagraphFormat.ali gnment=1

Next

Next

End Sub

</SCRIPT>

三、直接在IE中打开,再存为EXCEL文件

把读出的数据用<table>格式,在网页中显示出来,同时,加上下一句即可把EXCEL表在客客户端显示。

<%response.ContentType ="application/vnd.ms-excel"%>

注意:显示的页面中,只把<table>输出,最好不要输出其他表格以外的信息。

四、导出以半角逗号隔开的csv

用fso方法生成文本文件的方法,生成一个扩展名为csv文件。此文件,一行即为数据表的一行。生成数据表字段用半角逗号隔开。(有关fso生成文本文件的方法,在此就不做介绍了)

CSV文件介绍(逗号分隔文件)

选择该项系统将创建一个可供下载的CSV 文件;CSV是最通用的一种文件格式,它可以非常容易地被导入各种PC表格及数据库中。

请注意即使选择表格作为输出格式,仍然可以将结果下载CSV文件。在表格输出屏幕的底部,显示有"CSV 文件"选项,点击它即可下载该文件。

如果您把浏览器配置为将您的电子表格软件与文本(TXT)/逗号分隔文件(CSV)相关联,当您下载该文件时,该文件将自动打开。下载下来后,如果本地已安装EXCEL,点击此文件,即可自动用EXCEL软件打开此文件。

1. 前言

报表打印通常是管理信息系统中的一个重要模块,而Excel凭借它功能强大、应用灵活、通用性强等的优势在报表打印中获得了广泛的应用。

最初的管理信息系统基本上是采用客户机/服务器(C/S)模式开发的,但随着WWW的广泛应用,目前的管理信息系统已经逐渐开始从C/S模式向浏览器/服务器(B/S)模式转变。B/S模式具有传统C/S模式所不及的很多特点,如更加开放、与软硬件无关、应用扩充和系统维护升级方便等等,目前已成为企业网上首选的计算模式,原先在C/S下的很多软件都开始移植到B/S模式下。由于B/S模式的特殊性,在C/S下相对较易实现的Excel报表打印功能在B/S下却成为一个难点。本文根据在实际的项目中总结的经验,以asp为例,给出了一个较好的通用方法。

2. 功能实现

为了说明问题,这里举一个例子。系统平台是Windows 2000+SQL Server 2000+IIS 5.0+ASP 3,报表采用的是Excel,要求按照给定的报表格式生成图书销售统计的报表,并能够打印。

2.1 Excel报表模板的制作

首先根据给定的报表格式,制作一个Excel模板(就是要打印的报表的表格),当然其中需要从数据库中动态统计生成的数据留着空白。这个报表先在Excel中画好,然后保存为模板,存放在起来,这里为\test\book1.xlt。

2.2 Excel报表的生成与打印

这里采用了Excel的application组件,该组件在安装Excel时安装到系统中。我们的操作也都是针对该组件。

(1) 建立Excel.Application对象

set objExcel=CreateObject("Excel.Application")

(2) 打开Excel模板

objExcel.Workbooks.Open(server.mappath("\test")&"\book1.xlt") '打开Excel模板

objExcel.Sheets(1).select '选中工作页

set sheetActive=objExcel.ActiveWorkbook.ActiveSheet

(3) Excel的常规添加操作

例如sheetActive.range("g4").value=date() ‘这里添加的是时间,当然也可以是你指定的任何数据

(4) Excel中添加数据库中的纪录

这里假设已有一个数据集adoRset,存放由Sql操作生成的统计数据。

num=7 ‘从Excel的第七行开始

do until adoRset.EOF ‘循环直至数据集中的数据写完

strRange="d"&num&":f"&num ‘设定要填写内容的单元区域

sheetActive.range(strRange).font.size=10 ‘设定字体大小

sheetActive.range(strRange).WrapText=false ‘设定文字回卷

sheetActive.range(strRange).ShrinkToFit=true ‘设定是否自动适应表格单元大小sheetActive.range(strRange).value=array(adoRset("bookid"),adoRset("bookname"),adoRset("auth or")) ‘把数据集中的数据填写到相应的单元中

num=num+1

adoRset.MoveNext

loop

(5) Excel临时报表文件的保存及处理

实际运行中应该注意每次一个用户进行报表打印时都采用一个临时的Excel文件,而不是硬性规定文件名,因为如果用固定的文件名的话,只有第一次生成是成功的,后面的操作都会因为已存在同名文件而导致失败。所以我们需要每次都产生一个临时的而且不重复的文件名,这里可以采用自定义的getTemporaryFile()函数由来生成,然后存放在变量filename中,用变量filepos表示这些临时文件的路径。

此外如果这些临时文件不处理的话久而久之会成为文件垃圾,因此在每个用户提交Excel报表打印请求时要先删除临时目录下所有原先产生的临时打印文件。

临时文件的处理主要代码如下:

function getTemporaryFile(myFileSystem)

dim tempFile,dotPos

tempFile=myFileSystem.getTempName

dotPos=instr(1,tempFile,".")

getTemporaryFile=mid(tempFile,1,dotPos)&"xls"

end function

set myFs=createObject("scripting.FileSystemObject")

filePos=server.mappath("\test") & "\tmp\" '要存放打印临时文件的临时目录

fileName=getTemporaryFile(myFs) '取得一个临时文件名

myFs.DeleteFile filePos&"*.xls" '删除该目录下所有原先产生的临时打印文件

set myFs=nothing

Excel临时文件的保存代码为:

objExcel.ActiveWorkbook.saveas filePos&filename

(6) 退出Excel应用

objExcel.quit

set objExcel=Nothing

(7) Excel报表的打印

前面的步骤已经生成了Excel报表,下一步进行打印,采用的策略可以有两种:

方案一:提供上面生成的Excel报表临时文件链接给用户,用户可以直接点击在浏览器中打开Excel报表并通过浏览器的打印功能进行打印,也可以点击右键然后另存到本地后再作打印等相关处理。

方案二:生成Excel报表后直接在客户端加载到浏览器,当然在没有完全加载时应该提示“正在加载,请等待”等字样。

2.3 系统配置与注意事项

虽然以上代码很简单,但实际应用不当经常会出现错误,所以下面要讲到的系统配置和注意事项非常关键。

(1) 千万要保证以上代码输入的正确性,否则一旦运行错误,Excel对象会滞留内存,难以消除,导致下一次调用时速度狂慢,并产生内存不可读写的Windows错误。这时的解决方法就是注销当前用户,如果还不行,就只能Reset了。

(2) 一定要设置好负责打印功能的asp文件的权限。方法是:在IIS管理中,选择该asp文件,右键然后选“属性”/“文件安全性”/"匿名访问和验证控制“,在这里IIS默认是匿名访问,应该选择验证访问(这里基本验证和集成Windows验证两种方式均可,但前者不够安全),这一点无比重要,否则应用当中会出错的。

(3) 有的时候报表分为多页,而且我们希望每一页有相同的表头,要求表头每页都自动打印,可以在Excel模板中进行设置。方法如下:选择菜单"文件"/"页面设置"/"工作表",然后在"顶端标题行"输入你表头的行数(如:表头为1-3行即填入:$1:$3)。

3.总结

以上我们给出了一个采用ASP写的在B/S模式下实现EXCEL报表的生成与打印的例子,在实际当中已经得到了良好的应用。事实也证明,这个例子的代码虽然不难写,但一定要注意系统的配置,这也是无数次失败后得出的经验。

-

资料引用:https://www.360docs.net/doc/bf12334690.html,/441714.html

asp操作excel方法

asp操作excel方法 代码如下: <% ‘************************************************* ****************** ‘使用说明 ‘dim a ‘set a=new createexcel ‘a.savepath=x ‘保存路径 ‘a.sheetname=工作簿名称‘多个工作表a.sheetname=array(工作簿名称一,工作簿名称二) ‘a.sheettitle=表名称‘可以为空多个工作表a.sheetname=array(表名称一,表名称二) ‘a.data =d ‘二维数组‘多个工作表 array(b,c) b 与c为二维数组 ‘dim rs ‘set rs=server.createobject(adodb.recordset) ‘rs.open select id, classid, classname from [class] ,conn, 1, 1 ‘a.adddbdata rs, 字段名一,字段名二, 工作簿名称, 表名称, true ‘true自动获取表字段名

‘a.adddata c, true , 工作簿名称, 表名称‘c二维数组 true 第一行是否为标题行 ‘a.addtdata e, sheet1 ‘按模板生成c=array(array(aa1, 内容), array(aa2, 内容2)) ‘a.create() ‘https://www.360docs.net/doc/bf12334690.html,edtime 生成时间,毫秒数 ‘a.savepath 保存路径 ‘set a=nothing ‘设置com组件的操作权限。在命令行键入“dcomcnfg”,则进入com组件配置界面,选择microsoftexcel后点击属性按钮,将三个单选项一律选择自定义,编辑中将everyone 加入所有权限 ‘************************************************* ****************** class createexcel private createtype_ private savepath_ private readpath_ private authorstr rem 设置作者 private versionstr rem 设置版本 private systemstr rem 设置系统名称

ASP直接调用EXCEL数据

ASP直接调用EXCEL数据的例子(不用ODBC) 例子: 在"c:excelbook1.xls"存在一个EXCEL表book1.xsl,表的结构如下: 1 序号名称金额 2 1 张三100 3 2 李四200 4 3 王五300 序号字段不为空 注意:excel 起始行是1而不是为0 <%@language=vbscript %> <% Set xlApp = server.CreateObject("Excel.Application") strsource = "c:excelbook1.xls" Set xlbook = xlApp.Workbooks.Open(strsource) Set xlsheet = xlbook.Worksheets(1) i=1 response.write "

" while xlsheet.cells(i,1)<>"" response.write "" response.write " " response.write " " response.write " " response.write "" i=i+1 wend response.write "
" & xlsheet.Cells(i, 1) & "" & xlsheet.Cells(i, 2) & "" & xlsheet.Cells(i, 3) & "
"

asp数据库成excel文件代码

asp数据库数据生成excel文件: 生成EXCEL文件实例 在线生成EXCEL


<% if Request("act") = "" then Response.Write "生成EXCEL文件实例" else dim conn,strconn strconn="driver={SQL Server};server=wen;uid=sa;pwd=;database=DB_Test" set conn=server.CreateObject("adodb.connection") conn.Open strconn dim rs,sql,filename,fs,myfile,x Set fs = server.CreateObject("scripting.filesystemobject") '--假设你想让生成的EXCEL文件做如下的存放 filename = Server.MapPath("online.xls") '--如果原来的EXCEL文件存在的话就删除 if fs.FileExists(filename) then fs.DeleteFile(filename) end if '--创建EXCEL文件 set myfile = fs.CreateTextFile(filename,true) Set rs = Server.CreateObject("ADODB.Recordset") '--从数据库中把你想放到EXCEL中的数据读出来 sql = "select * from Tb_Execl order by id desc" rs.Open sql,conn,1,1 if rs.EOF and rs.BOF then else dim strLine,responsestr strLine="" For each x in rs.fields strLine = strLine & https://www.360docs.net/doc/bf12334690.html, & chr(9) Next '--将表的列名先写入EXCEL myfile.writeline strLine Do while Not rs.EOF strLine=""

https://www.360docs.net/doc/bf12334690.html,中上传并读取Excel文件数据示例_6

如何打开Excel数据库文件,想必有很多朋友都不清楚吧,下面通过一个简单的例子,实现读取Excel数据文件 在CSDN中,经常有人问如何打开Excel数据库文件。本文通过一个简单的例子,实现读取Excel数据文件。 首先,创建一个Web应用程序项目,在Web页中添加一个DataGrid控件、一个文件控件和一个按钮控件。 代码如下: <INPUTid="File1"type="file"name="File1"runat="server"> <asp:Buttonid="Button1"runat="server"Text="Button"></asp:Button> <asp:DataGridid="DataGrid1"runat="server"></asp:DataGrid> 在代码视图中首先导入OleDb命名空间: usingSystem.Data.OleDb; 在按钮的单击事件中输入如下代码: 代码如下: stringstrPath="c://test//"+DateTime.Now.ToString("yyyyMMddhhmmss")+".xls"; File1.PostedFile.SaveAs(strPath); stringmystring="Provider=Microsoft.Jet.OLEDB.4.0;DataSource='"+strPath+"';ExtendedPropertie s=Excel8.0"; OleDbConnectioncnnxls=newOleDbConnection(mystring); OleDbDataAdaptermyDa=newOleDbDataAdapter("select*from[Sheet1$]",cnnxls); DataSetmyDs=newDataSet(); myDa.Fill(myDs); DataGrid1.DataSource=myDs.Tables[0]; DataGrid1.DataBind(); 其中C:/test对ASPNET用户要有读写的权限. 更多信息请查看IT技术专栏

ASP实例代码 asp操作Excel类

ASP实例代码asp操作Excel类 asp操作Excel类: <% '******************************************************************* '使用说明 'Dim a 'Set a=new CreateExcel 'a.SavePath="x" '保存路径 'a.SheetName="工作簿名称" '多个工作表 a.SheetName=array("工作簿名称一","工作簿名称二") 'a.SheetTitle="表名称" '可以为空多个工作表a.SheetName=array("表名称一","表名称二") 'a.Data =d '二维数组'多个工作表array(b,c) b与c为二维数组 'Dim rs 'Set rs=server.CreateObject("Adodb.RecordSet") 'rs.open "Select id, classid, className from [class] ",conn, 1, 1 'a.AddDBData rs, "字段名一,字段名二", "工作簿名称", "表名称", true 'true自动获取表字段名 'a.AddData c, true , "工作簿名称", "表名称" 'c二维数组true 第一行是否为标题行 'a.AddtData e, "Sheet1" '按模板生成c=array(array("AA1", "内容"), array("AA2", "内容2")) 'a.Create() 'https://www.360docs.net/doc/bf12334690.html,edTime 生成时间,毫秒数 'a.SavePath 保存路径 'Set a=nothing '设置COM组件的操作权限。在命令行键入“DCOMCNFG”,则进入COM组件配置界面,选择MicrosoftExcel后点击属性按钮,将三个单选项一律选择自定义,编辑中将Everyone 加入所有权限 '******************************************************************* Class CreateExcel Private CreateType_ Private savePath_ Private readPath_ Private AuthorStr Rem 设置作者 Private VersionStr Rem 设置版本 Private SystemStr Rem 设置系统名称 Private SheetName_ Rem 设置表名 Private SheetTitle_ Rem 设置标题 Private ExcelData Rem 设置表数据 Private ExcelApp Rem Excel.Application Private ExcelBook Private ExcelSheets

如何用asp读取Excel文件(比较全面)

1.ASP对Excel的基本操作 (1) 建立Excel对象 创建Excel对象可以通过下面的代码来实现: <% set objExcelApp = CreateObject("Excel.Application") objExcelApp.DisplayAlerts = false '不显示警告objExcelApp.Application = false '不显示界面 %> (2) 新建Excel文件 新建Excel文件可以通过以下代码来实现: <% objExcelApp.WorkBooks.add set objExcelBook = objExcelApp.ActiveWorkBook set objExcelSheets = objExcelBook.Worksheets set objExcelSheet = objExcelBook.Sheets(1) %> (3) 读取已有的Excel文件 读取已有的Excel文件可以通过下面的代码来实现 <% strAddr = Server.MapPath(".") objExcelApp.WorkBooks.Open(strAddr & "TempletTable.xls") set objExcelBook = objExcelApp.ActiveWorkBook set objExcelSheets = objExcelBook.Worksheets set objExcelSheet = objExcelBook.WorkSheets(1) %> (4) 另存Excel文件 另存Excel文件可以通过以下代码来实现 <% objExcelBook.SaveAs strAddr & "templateTables.xls" %> (5) 保存Excel文件 保存Excel文件可以通过以下代码来实现: <% objExcelBook.Save %> (6) 退出Excel操作 <%

ASP将Excel导入到Access数据库的方法实例

Excel中的数据导入到Access中,前提是在Access中的表已经建好。 dim conn dim conn2 set conn=CreateObject("ADODB.Connection") conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=;Data Source=c:\book1.mdb" set conn2=CreateObject("ADODB.Connection") conn2.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=;Extended properties=Excel 5.0;Data Source=c:\book1.xls" sql = "select * FROM [Sheet1$]" set rs = conn2.execute(sql) while not rs.eof sql = "insert into xxx([a],[bb],[c],[d]) values('"& fixsql(rs(0)) &"','"& fixsql(rs(1)) &"','"& fixsql(rs(2)) &"','"& fixsql(rs(3)) &"')" conn.execute(sql) rs.movenext wend conn.close set conn = nothing conn2.close set conn2 = nothing function fixsql(str) dim newstr newstr = str if isnull(newstr) then newstr = "" else newstr = replace(newstr,"'","'") end if fixsql = newstr end function 导入到Sql Server数据库中时,如果Excel文件和数据库不在同一台服务器上时,请参考上面的代码。在同一机器上可以参考下面代码(不需要先把表建表,程序会自己动建表,用Excel 中的第一行数据做为表的字段名): dim conn set conn=CreateObject("ADODB.Connection")

asp写入excel

<%@ LANGUAGE="VBSCRIPT" %> <%option explicit%> 生成EXCEL文件 生成EXCEL文件


<% if Request("act") = "" then Response.Write "生成EXCEL文件" else dim conn,strconn strconn="driver={SQL Server};server=xxx;uid=sa;pwd=;database=DB_Test" set conn=server.CreateObject("adodb.connection") conn.Open strconn dim rs,sql,filename,fs,myfile,x Set fs = server.CreateObject("scripting.filesystemobject") '--假设你想让生成的EXCEL文件做如下的存放 filename = Server.MapPath("online.xls") '--如果原来的EXCEL文件存在的话删除它 if fs.FileExists(filename) then fs.DeleteFile(filename) end if '--创建EXCEL文件 set myfile = fs.CreateTextFile(filename,true) Set rs = Server.CreateObject("ADODB.Recordset") '--从数据库中把你想放到EXCEL中的数据查出来 sql = "select * from Tb_Execl order by sort desc" rs.Open sql,conn if rs.EOF and rs.BOF then Response.Write "库里暂时没有数据!"

ASP生成Excel文件方法

ASP生成Excel文件方法 方法一:导出到csv文件,存放在服务器端任一路径,然后给客户下载优点: 1、可以进行身份认证后给客户下载,如果放到非web目录就没有对应的url,客户无法随时下载。 2、也是因为生成了文件,所以占用了服务器的空间,但是可以把文件名存放到数据库,再次给客户下载的时候不需要重复生成文件。 3、csv文件是文本文件,逗号隔开字段,回车隔开行,易于数据导入导出。 实现方法: SqlConnection conn=new SqlConnection("conn"]); SqlDataAdapter da=new SqlDataAdapter("select*from tb1",conn); DataSet ds=new DataSet(); da.Fill(ds,"table1"); DataTable dt=ds.Tables["table1"]; string name="downloadurl"].ToString()+"yyyyMMdd")+new Random(".csv";//存放到web.config中downloadurl指定的路径,文件格式为当前日期+4位随机数 FileStream fs=new FileStream(name,FileMode.Create,FileAccess.Write); StreamWriter sw=new StreamWriter(fs,"gb2312")); sw.WriteLine("自动编号,姓名,年龄"); foreach(DataRow dr in dt.Rows) { sw.WriteLine(dr["ID"]+","+dr["vName"]+","+dr["iAge"]); } sw.Close();

用ASP连接读写ACCESS数据库实例

(一)数据库的选择: 有许多的数据库你可以选择,SQL SERVER、ACCESS(*.mdb)、EXCEL(*.xls)、FOXPRO(*.dbf)甚至普通的文本文件(*.txt)都可以达到存储数据的功能。那么到底选择什么数据库最合适呢?其中SQL SERVER是服务器级的,足以应付每天上万次的访问量。对于非服务器级的数据库建议使用ACCESS97。 因为: (1)只要安装了PWS或IIS4肯定有ACCESS的ODBC驱动,即你的系统肯定支持ACCESS数据库的存取。 (2)ACCESS支持的SQL指令非常齐全。 (3)ACCESS ODBC驱动程序的效率非常高。虽然它不是服务器级的数据库,但是作为中小型企业内部网的数据库支持还是绰绰有余的。 (4)ACCESS97在OFFICE97中就有,非常方便得到和使用。 本文就以ACCESS数据库为准介绍基于WEB的数据库存取方法。 (二)例子:我们建立一个“客户”数据库,需要保存如下的客户资料:客户名称、联络人姓名、所在城市、电话号码。 (1)首先建立ACCESS数据库customer.mdb(今后有用的)。 建立如下字段:客户名称、联络人姓名、所在城市、电话号码、客户编号、时间。将表保存为" 客户"(今后有用的,===>看看图)。注意:建立字段时多作了2个(客户编号、时间),因为在今后排序时要用到它们。建议今后做数据库时最好都加上这2项,不会没用的。此外,在保存表时ACCESS 会询问是否建立一个住关键字,我们不需要它所以不必建立。还有:时间字段的"默认值"设成"now()",即去系统当时的时间。同时将索引项设成"有(允许重复)",含义:WEB上极有可能同时存取数据,所以允许重复,索引设成"有"可以加快排序速度。===>看看图 (2)建立递交表单add.htm: 源代码如下: 添加数据库记录

添加数据库记录

公司名称:

Asp连接读取excel内容并导入到数据库

Asp连接读取excel内容并导入到数据库asp连接excel Set connnew = Server.CreateObject("ADODB.Connection") 'hdr取值yes,no ,表示第一行是否为字段名 connStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath(“test.xls”)&";Extended Properties='Excel 8.0;HDR=No;IMEX=1';" connnew.open connstr Set rsnew=Server.CreateObject("ADODB.Recordset") 'Sheet1为excel里面的表名,表名后面一定要加$ sqlnew = "select * from [Sheet1$]" rsnew.open sqlnew,connnew,1,1 'rows是读取的excel里面数据的行数 rows=rsnew.recordcount 'cells是读取excel里面数据的列数 cells=rsnew.Fields.Count 输出记录集rsnew里面的数据,规则是这样的: 如果HDR赋值是No的话 rsnew(0)输出的是excel里第一行第一列的内容 如果HDR赋值是Yes的话 rsnew(0)输出的是excel里第二行第一列的内容

如果想输出第二行的内容,只需在语句前加rsnew.movenext 输出就这么简单的完成了! 连接网站数据库,相信各位程序猿都已经会了。要做的就是用sql语句判断要导入的数据是否存在,存在用update修改一下。不存在的话addnew重新插入一条即可。 如果想要实现上传excel后导入的话,可以加上一个上传程序,将上传后的excel 路径传输到asp连接excel的字符串里面。 asp读取excel并导入数据库就完成了,如果有不明白的可以联系作者! 注意事项 ? 注意excel里的表名是不是Sheet1.不是话注意和程序保持一致 程序只适合固定模板excel使用。如果excel格式不同,无法使用这个程序统一导入。

ASP用模板生成Excel、Word

用模板生成Excel、Word最大优点: Word、Excel文档样式易于控制和调整,以往用Excel.Application来生成Excel、Word,需要写很多代码来控制排版的样式,用模版几乎不受任何限制,只需要打开word或Excel,编辑文档,选择"文件->另存为web页",即可方便的做好模板,用office生成的模板要比直接在DW中做好模板更加符合office偏好,生成后文件样式可与原word、Excel格式99%一样,因此建议大家用office(office97~office2003)直接来生成模板框架。 主要的代码 function.asp 复制内容到剪贴板代码: <% ''开启容错机制 on error resume next '功能,检测服务器是否支持指定组件 Function object_install(strclassstring) on error resume next object_install=false dim xtestobj set xtestobj=server.createobject(strclassstring) if -2147221005 <> Err then object_install=true set xtestobj=nothing end function if object_install("Scripting.FileSystemobject")=false then Response.Write "

对不起,您的空间不支持FSO组件,请与管理员联系!
" Response.End end if if object_install("adodb.stream")=false then Response.Write "
对不起,您的空间不支持adodb.stream功能,请与管理员联系!
" Response.End end if '----------------------------------------------------------------------------- '函数名称:ReadTextFile '作用:利用AdoDb.Stream对象来读取文本文件 '参数:FileUrl文件相对路径,FileCharSet:文件编码 Function ReadFromTextFile (FileUrl,FileCharSet)'函数 dim str set stm=server.CreateObject("adodb.stream") stm.Type=2 '指定或返回的数据类型, stm.mode=3 '指定打开模式,现在为可以读写模式,类似于word的只读或锁定功能

在ASP中怎么把页面中的数据导出到EXCEL

使用asp怎样将数据导出到excel文件 Web 注意:两个函数中的“data“是网页中要导出的table的 id 导出到Excel代码 导出到Word代码