2012-06-25 37 views
-2

我需要上傳一個excel文件到服務器。但東西是我需要檢查這是否有MS Excel 12.0對象庫或不?任何人都可以提出這個意思的方法.. ??Excel文件上傳

+2

你想檢查SERVER是否有該庫?最後我檢查了一下,Excel沒有被授權在服務器上使用(事實上,在任何重要的卷下運行都不會很好)。 –

+2

爲什麼你的問題同時用'c#'和'asp-classic'標記?任何關係?顯然,永恆的問題在於:[你有什麼嘗試](http://mattgemmell.com/2008/12/08/what-have-you-tried/)? –

+1

如果你正在嘗試做我認爲你正在嘗試做的事 - 我的建議很簡單 - 你不想走這條路。請參閱此鏈接 - 關於服務器端Office自動化的注意事項:http://support.microsoft.com/kb/257757 –

回答

0

一旦Excel文件上傳到服務器(copied from here),以下是一些經典的ASP代碼。

<% Option Explicit %> 
<html> 
<body> 
<% 
Dim objConn, objRS, strSQL 
Dim x, curValue 

Set objConn = Server.CreateObject("ADODB.Connection") 
objConn.Open "DRIVER={Microsoft Excel Driver (*.xls)}; IMEX=1; HDR=NO; "&_ 
    "Excel 8.0; DBQ=" & Server.MapPath("excelfile.xls") & "; " 

'if using xslx (Excel 2007) use this instead: 
'objConn.Open "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};"&_ 
' "DBQ=" & Server.MapPath("excelfile.xlsx") & ";" 

strSQL = "SELECT * FROM A1:Q10000" 
Set objRS=objConn.Execute(strSQL) 
Response.Write("<table border=""1"">") 
Response.Write("<tr>") 
For x=0 To objRS.Fields.Count-1 
    Response.Write("<th>" & objRS.Fields(x).Name & "</th>") 
Next 
Response.Write("</tr>") 
Do Until objRS.EOF 
    Response.Write("<tr>") 
    For x=0 To objRS.Fields.Count-1 
     curValue = objRS.Fields(x).Value 
     If IsNull(curValue) Then 
      curValue="N/A" 
     End If 
     curValue = CStr(curValue) 
     Response.Write("<td>" & curValue & "</td>") 
    Next 
    Response.Write("</tr>") 
    objRS.MoveNext 
Loop 
objRS.Close 
Response.Write("</table>") 
objConn.Close 
Set objRS=Nothing 
Set objConn=Nothing 
%> 
</body> 
</html>