下面即是用ASP创建(生成)PDF文件的代码
<%
Option explicite
Sous CheckXlDriver()
En cas d'erreur, reprendre ensuite
Dim vConnString
Faible oConn, oErr
' essayez de vous connecter au fichier NUL :
vConnString = DRIVER={Pilote Microsoft Excel (*.xls)};DBQ=NUL :
Définir oConn = CreateObject (ADODB.Connection)
oConn.Open vConnString
Pour chaque oErr dans oConn.Errors
' lorsque le pilote Excel signale un échec de création du fichier,
' alors il doit être installé et fonctionner ;-))
Si oErr.NativeError = -5036 Alors
Quitter le sous-marin
Fin si
Suivant
Fournisseur ou pilote Response.Write non disponible. (Ré)Installez MDAC.
Réponse.Écrire hex(Err.Number) & & Err.Description &
Pour chaque oErr dans oConn.Errors
Réponse.Écrire hex(oErr.Number) & & oErr.NativeError & & oErr.Description &
Suivant
Réponse.Fin
Fin du sous-marin
Fonction GetConnection (vConnString)
En cas d'erreur, reprendre ensuite
Définir GetConnection = Server.CreateObject (ADODB.Connection)
GetConnection.Open vConnString
Si Err.Number <> 0 Alors
Définir GetConnection = Rien
Fin si
Fonction de fin
Fonction OptionTag(vChoice,vTrue)
Dim vSélectionné
Si vVrai Alors
vSélectionné = sélectionné
Fin si
OptionTag = <option & vSelected & > & _
Serveur.HtmlEncode(vChoice) & </option> & vbCrLf
Fonction de fin
La fonction est vérifiée (vTrue)
Si vVrai Alors
IsChecked = vérifié
Fin si
Fonction de fin
Options du livre de fonctions (vXlFile)
Dim vServerFolder
Dim deFs, oFolder, oFile
Dim vSélectionné
vServerFolder = Serveur.MapPath(.)
Ensemble oFs = Server.CreateObject (Scripting.FileSystemObject)
Définir oFolder = oFs.GetFolder (vServerFolder)
Pour chaque oFile dans oFolder.Files
Si oFile.Type = Feuille de calcul Microsoft Excel Alors
vSelected = (oFile.Name = vXlFile)
Options du livre = Options du livre & _
OptionTag (oFile.Name, vSelected)
Fin si
Suivant
Définir oFolder = Rien
Ensemble oFs = Rien
Fonction de fin
Fonction NamedRangeOptions (oConn, vXlRange, vTableType)
Dim oSchémas
Dim vSélectionné
NamedRangeOptions = OptionTag (Vide, Vide)
Si TypeName(oConn) = Connexion Alors
Définir oSchemaRs = oConn.OpenSchema (adSchemaTables)
Faire sans oSchemaRs.EOF
Si oSchemaRs(TABLE_TYPE) = vTableType Alors
vSelected = (oSchemaRs(TABLE_NAME) = vXlRange)
NamedRangeOptions = NamedRangeOptions & _
OptionTag(oSchemaRs(TABLE_NAME), vSelected)
Fin si
oSchemaRs.MoveNext
Boucle
Fin si
Fonction de fin
Fonction DataTable (oConn, vXlRange, vXlHasHeadings)
En cas d'erreur, reprendre ensuite
' de OleDbVbc.inc
Const DB_E_ERRORSINCOMMAND = &H80040E14
Dim oRs, hors champ
Dim vThTag, vThEndTag
Si vXlHasHeadings Alors
vThTag = <th>
vThEndTag = </th>
Autre
vThTag = <td>
vThEndTag = </td>
Fin si
DataTable = <bordure de la table=1>
Si TypeName(oConn) = Connexion Alors
Définir oRs = oConn.Execute([ & vXlRange & ])
Si oConn.Errors.Count > 0 Alors
Pour chaque oConnErr dans oConn.Errors
Si oConnErr.Number = DB_E_ERRORSINCOMMAND Alors
Table de données = Table de données & _
<tr><td>Aucune plage de ce type :</td><th> & vXlRange & </th></tr>
Autre
Table de données = Table de données & _
<tr><td> & oConnErr.Description & </td></tr>
Fin si
Suivant
Autre
DataTable = DataTable & <tr>
Pour chaque oField dans oRs.Fields
DataTable = DataTable & vThTag & oField.Name & vThEndTag
Suivant
DataTable = DataTable & </tr>
Faire pendant que pas oRs.Eof
DataTable = DataTable & <tr>
Pour chaque oField dans oRs.Fields
DataTable = DataTable & <td> & oField.Value & </td>
Suivant
DataTable = DataTable & </tr>
oRs.MoveNext
Boucle
Fin si
Définir oRs = Rien
Autre
DataTable = DataTable & <tr><td>Fichier verrouillé par une autre application ou autrement inaccessible. Impossible de continuer.</td></tr>
Fin si
DataTable = DataTable & </table>
Fonction de fin
' --principal--
%>
<html>
<tête>
<title>Lire Excel</title>
<LANGUE DU SCRIPT=javascript>
<!--
fonction XlBook_onchange(theForm) {
avec (leFormulaire) {
XlSheet.selectedIndex = 0 ;
XlSheet.disabled = vrai ;
XlNamedRange.selectedIndex = 0 ;
XlNamedRange.disabled = true ;
XlTypedRange.value = A:IV;
}
}
fonction XlSheet_onchange(theForm) {
avec (leFormulaire) {
XlNamedRange.selectedIndex = 0 ;
XlTypedRange.value = XlSheet.options[XlSheet.selectedIndex].text;
}
}
fonction XlNamedRange_onchange(theForm) {
avec (leFormulaire) {
XlSheet.selectedIndex = 0 ;
XlTypedRange.value = XlNamedRange.options[XlNamedRange.selectedIndex].text;
}
}
fonction XlTypedRange_onchange(theForm) {
avec (leFormulaire) {
XlSheet.selectedIndex = 0 ;
XlNamedRange.selectedIndex = 0 ;
}
}
//-->
</SCRIPT>
</tête>
<corps>
<%
Dim vXlFile, vXlFilePath
Dim vXlRange, vXlHasHeadings
Dim vDésactivé
Dim vConnString
Dim oConn, oConnErr
Const adSchemaTables = 20 'de adovbs.inc
CheckXlDriver 'assure-toi qu'il fonctionne
vXlFile = Requête (XlBook)
Si vXlFile <> Vide Alors
vXlRange = Requête (XlTypedRange)
Si vXlRange = Vide Alors
vXlRange = A:IV
Autre
vXlRange = Remplacer (vXlRange, !, $)
Fin si
vXlHasHeadings = Requête (XlHasHeadings)
' établir la connexion
vXlFilePath = Serveur.MapPath(vXlFile)
vConnString = DRIVER={Pilote Microsoft Excel (*.xls)};ReadOnly=1;DBQ= & _ vXlFilePath
Définir oConn = GetConnection (vConnString)
Autre
vDisabled = désactivé
Fin si
%>
<form name=MyForm method=POST action=<%=Request.ServerVariables(SCRIPT_NAME)%>>
<bordure du tableau=1 largeur=100%>
<tr>
<th>Cahier d'exercices :</th>
<td>
<select name=XlBook LANGUAGE=javascript onchange=return XlBook_onchange(MyForm)>
<%= Options du livre(vXlFile) %>
</select></td>
<td align=center>Feuille de travail :</td>
<td><select <%=vDisabled%> name=XlSheet LANGUAGE=javascript onchange=return XlSheet_onchange(MyForm)>
<%= NamedRangeOptions(oConn, vXlRange, SYSTEM TABLE) %>
</select></td>
</tr>
<tr>
<th>Plage :</th>
<td><input type=text name=XlTypedRange LANGUAGE=javascript onchange=return XlTypedRange_onchange(MyForm)
valeur =<%= vXlRange %>></td>
<td align=center>Plage nommée :</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>
<type d'entrée=nom de la case à cocher=XlHasHeadings
<%= IsChecked(vXlHasHeadings) %>
value=True> Afficher la première ligne sous forme d'en-têtes de colonnes</td>
</tr>
<tr>
<th>
<p> </th>
<td colspan=3>
<a href=<%= vXlFile %>><%= vXlFile %></a>
</td>
</tr>
</table>
<input type=submit value=Submit name=cmdSubmit>
<input type=reset value=Reset name=cmdReset>
</form><hr>
<%
Si vXlRange <> Vide Alors
Response.Write DataTable (oConn, vXlRange, vXlHasHeadings)
Fin si
%>
</corps>
</html>