进口/出口经典的asp

时间:2012-05-24 06:08:39

标签: asp-classic

我想在经典asp中导入/导出MS EXCEL中的数据。我做了那个部分。但我的问题是当我们从MS EXCEL导入和导出数据时,我们需要在服务器上安装MS-OFFICE。但我的客户不想在服务器上安装MS-OFFICE。如果没有在服务器上安装MS-OFFICE,可以从Excel导入/导出。

提前致谢

谢谢&问候 果冻

2 个答案:

答案 0 :(得分:0)

我自己没有做过,但我不知道为什么不这样做。

您可以使用MS Jet数据库引擎,该引擎可能已在您的服务器上 https://stackoverflow.com/a/16051/882436

或者,您可以使用此组件: http://exceldatareader.codeplex.com/

并通过COM互操作使其工作(所以你可以在经典的ASP中使用它),如下所示: http://msdn.microsoft.com/en-us/library/zsfww439(v=vs.71).aspx

HTH

答案 1 :(得分:0)

过去我曾多次这样做过;-)不幸的是,代码无法快速找到。我发现这个例子要导入:

<%
Set ExcelConn = Server.CreateObject("ADODB.Connection")
Set ExcelRS = Server.CreateObject("ADODB.Recordset")
ExcelConn.Provider = "Microsoft.Jet.OLEDB.4.0"
ExcelConn.Properties("Extended Properties").Value = "Excel 8.0"
ExcelConn.Open "C:\Sample\Sample.xls"

'get data from sheet
sSQL = "SELECT * FROM Sample$"
set ExcelRS = ExcelConn.Execute(sSQL)

'loop through each record in Excel and write it to access
'might be slow, but will work

Do until ExcelRS.EOF 
myConn.Execute("INSERT INTO Sample_tbl(lname,fname,mi) VALUES ('" & ExcelRS("0") & "', '" & ExcelRS("1") & "','" & ExcelRS("2") & "')")

ExcelRS.MoveNext
Loop

ExcelRS.Close
set ExcelRS = NOTHING
objExcelConn.Close
set ExcelConn = NOTHING
objConnAccess.close
set objConnAccess = NOTHING
%>

这个用于导出的小片段,几乎归结为添加正确的内容类型标题:

<%@ Language=VBScript %>
<%  Option Explicit

Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "Content-Disposition", "attachment; filename=sample.xls"
%>
<table>
    <tr>
        <td>Sample</td>
    </tr>
</table>