下面即是用ASP创建(生成)PDF文件的代码
<%
Option explizit
Sub CheckXlDriver()
Bei Fehler Weiter fortsetzen
vConnString dimmen
Dim oConn, oErr
' Versuchen Sie, eine Verbindung zur Datei NUL herzustellen:
vConnString = DRIVER={Microsoft Excel-Treiber (*.xls)};DBQ=NUL:
Setze oConn = CreateObject(ADODB.Connection)
oConn.Öffne vConnString
Für jeden oErr in oConn.Errors
' wenn der Excel-Treiber einen Fehler beim Erstellen der Datei meldet,
' dann muss es installiert sein und funktionieren ;-))
Wenn oErr.NativeError = -5036, dann
Unter verlassen
Ende wenn
Nächste
Response.Write-Anbieter oder -Treiber nicht verfügbar. (Neu-)Installieren Sie MDAC.
Response.Write hex(Err.Number) & & Err.Description &
Für jeden oErr in oConn.Errors
Response.Write hex(oErr.Number) & & oErr.NativeError & & oErr.Description &
Nächste
Antwort.Ende
Sub beenden
Funktion GetConnection(vConnString)
Bei Fehler Weiter fortsetzen
Setze GetConnection = Server.CreateObject(ADODB.Connection)
GetConnection.Open vConnString
Wenn Err.Number <> 0, dann
Setzen Sie GetConnection = Nothing
Ende wenn
Funktion beenden
Funktion OptionTag(vChoice,vTrue)
vSelected dimmen
Wenn vWahr, dann
vSelected = ausgewählt
Ende wenn
OptionTag = <option & vSelected & > & _
Server.HtmlEncode(vChoice) & </option> & vbCrLf
Funktion beenden
Funktion IsChecked(vTrue)
Wenn vWahr, dann
IsChecked = überprüft
Ende wenn
Funktion beenden
Funktion BookOptions(vXlFile)
vServerFolder dimmen
Dimmen Sie oFs, oFolder, oFile
vSelected dimmen
vServerFolder = Server.MapPath(.)
Set ofFs = Server.CreateObject(Scripting.FileSystemObject)
Setze oFolder = oFs.GetFolder(vServerFolder)
Für jede oFile in oFolder.Files
Wenn oFile.Type = Microsoft Excel-Arbeitsblatt, dann
vSelected = (oFile.Name = vXlFile)
BookOptions = BookOptions & _
OptionTag(oFile.Name, vSelected)
Ende wenn
Nächste
Legen Sie oFolder = Nothing fest
Set ofFs = Nichts
Funktion beenden
Funktion NamedRangeOptions(oConn, vXlRange, vTableType)
Dim oSchemaRs
vSelected dimmen
NamedRangeOptions = OptionTag(Empty, Empty)
Wenn TypeName(oConn) = Connection Then
Setze oSchemaRs = oConn.OpenSchema(adSchemaTables)
Tun Sie dies ohne oSchemaRs.EOF
Wenn oSchemaRs(TABLE_TYPE) = vTableType, dann
vSelected = (oSchemaRs(TABLE_NAME) = vXlRange)
NamedRangeOptions = NamedRangeOptions & _
OptionTag(oSchemaRs(TABLE_NAME), vSelected)
Ende wenn
oSchemaRs.MoveNext
Schleife
Ende wenn
Funktion beenden
Funktion DataTable(oConn, vXlRange, vXlHasHeadings)
Bei Fehler Weiter fortsetzen
' von OleDbVbc.inc
Const DB_E_ERRORSINCOMMAND = &H80040E14
Dim oRs, oField
Dimmen Sie vThTag, vThEndTag
Wenn vXlHasHeadings, dann
vThTag = <th>
vThEndTag = </th>
Anders
vThTag = <td>
vThEndTag = </td>
Ende wenn
DataTable = <table border=1>
Wenn TypeName(oConn) = Connection Then
Setze oRs = oConn.Execute([ & vXlRange & ])
Wenn oConn.Errors.Count > 0, dann
Für jeden oConnErr in oConn.Errors
Wenn oConnErr.Number = DB_E_ERRORSINCOMMAND Dann
DataTable = DataTable & _
<tr><td>Kein solcher Bereich:</td><th> & vXlRange & </th></tr>
Anders
DataTable = DataTable & _
<tr><td> & oConnErr.Description & </td></tr>
Ende wenn
Nächste
Anders
DataTable = DataTable & <tr>
Für jedes oField in oRs.Fields
DataTable = DataTable & vThTag & oField.Name & vThEndTag
Nächste
DataTable = DataTable & </tr>
Tun Sie dies, ohne oRs.Eof
DataTable = DataTable & <tr>
Für jedes oField in oRs.Fields
DataTable = DataTable & <td> & oField.Value & </td>
Nächste
DataTable = DataTable & </tr>
ors.MoveNext
Schleife
Ende wenn
Setze oRs = Nichts
Anders
DataTable = DataTable & <tr><td>Datei von einer anderen Anwendung gesperrt oder aus anderen Gründen nicht zugänglich. Kann nicht fortfahren.</td></tr>
Ende wenn
DataTable = DataTable & </table>
Funktion beenden
' --hauptsächlich--
%>
<html>
<Kopf>
<title>Excel lesen</title>
<SCRIPT LANGUAGE=javascript>
<!--
Funktion XlBook_onchange(theForm) {
mit (theForm) {
XlSheet.selectedIndex = 0;
XlSheet.disabled = true;
XlNamedRange.selectedIndex = 0;
XlNamedRange.disabled = true;
XlTypedRange.value = A:IV;
}
}
Funktion XlSheet_onchange(theForm) {
mit (theForm) {
XlNamedRange.selectedIndex = 0;
XlTypedRange.value = XlSheet.options[XlSheet.selectedIndex].text;
}
}
Funktion XlNamedRange_onchange(theForm) {
mit (theForm) {
XlSheet.selectedIndex = 0;
XlTypedRange.value = XlNamedRange.options[XlNamedRange.selectedIndex].text;
}
}
Funktion XlTypedRange_onchange(theForm) {
mit (theForm) {
XlSheet.selectedIndex = 0;
XlNamedRange.selectedIndex = 0;
}
}
//-->
</SCRIPT>
</head>
<Körper>
<%
Dimmen Sie vXlFile, vXlFilePath
Dimmen Sie vXlRange, vXlHasHeadings
Dimmen Sie vDisabled
vConnString dimmen
Dim oConn, oConnErr
Const adSchemaTables = 20 ' von adovbs.inc
CheckXlDriver ' stellen Sie sicher, dass es funktioniert
vXlFile = Request(XlBook)
Wenn vXlFile <> leer ist, dann
vXlRange = Request(XlTypedRange)
Wenn vXlRange = Empty, dann
vXlRange = A:IV
Anders
vXlRange = Ersetzen(vXlRange, !, $)
Ende wenn
vXlHasHeadings = Request(XlHasHeadings)
' Verbindung herstellen
vXlFilePath = Server.MapPath(vXlFile)
vConnString = DRIVER={Microsoft Excel-Treiber (*.xls)};ReadOnly=1;DBQ= & _ vXlFilePath
Setze oConn = GetConnection(vConnString)
Anders
vDisabled = deaktiviert
Ende wenn
%>
<form name=MyForm method=POST action=<%=Request.ServerVariables(SCRIPT_NAME)%>>
<table border=1 width=100%>
<tr>
<th>Arbeitsmappe:</th>
<td>
<select name=XlBook LANGUAGE=javascript onchange=return XlBook_onchange(MyForm)>
<%= BookOptions(vXlFile) %>
</select></td>
<td align=center>Arbeitsblatt:</td>
<td><select <%=vDisabled%> name=XlSheet LANGUAGE=javascript onchange=return XlSheet_onchange(MyForm)>
<%= NamedRangeOptions(oConn, vXlRange, SYSTEM TABLE) %>
</select></td>
</tr>
<tr>
<th>Bereich:</th>
<td><input type=text name=XlTypedRange LANGUAGE=javascript onchange=return XlTypedRange_onchange(MyForm)
value =<%= vXlRange %>></td>
<td align=center>Benannter Bereich:</td>
<td><select <%=vDisabled%> name=XlNamedRange LANGUAGE=javascript onchange=return XlNamedRange_onchange(MyForm)>
<%= NamedRangeOptions(oConn, vXlRange, TABLE) %>
</select></td>
</tr>
<tr>
<th>
<p> </th>
<td colspan=3>
<Eingabetyp=Kontrollkästchenname=XlHasHeadings
<%= IsChecked(vXlHasHeadings) %>
value=True> Erste Zeile als Spaltenüberschriften anzeigen</td>
</tr>
<tr>
<th>
<p> </th>
<td colspan=3>
<a href=<%= vXlFile %>><%= vXlFile %></a>
</td>
</tr>
</table>
<Eingabetyp=Submit-Wert=Submit-Name=cmdSubmit>
<Eingabetyp=Wert zurücksetzen=Name zurücksetzen=cmdReset>
</form><hr>
<%
Wenn vXlRange <> leer ist, dann
Response.Write DataTable(oConn, vXlRange, vXlHasHeadings)
Ende wenn
%>
</body>
</html>