我想在经典asp中导入/导出MS EXCEL中的数据。我做了那个部分。但我的问题是当我们从MS EXCEL导入和导出数据时,我们需要在服务器上安装MS-OFFICE。但我的客户不想在服务器上安装MS-OFFICE。如果没有在服务器上安装MS-OFFICE,可以从Excel导入/导出。
提前致谢
谢谢&问候 果冻
答案 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>