下面即是用 ASP 创建 (生成) PDF 文件的代码
<%
Opción explícita
Sub checkxlDriver ()
En el currículum de error siguiente
Dim VConnString
Dim Oconn, oerr
'Intente conectarse al archivo NUL:
VConnString = Driver = {Microsoft Excel Driver (*.xls)}; dbq = nul:
Establecer OCONN = CreateObject (ADODB.Connection)
oconn.open vconnstring
Para cada oerr en Oconn.errors
'Cuando el controlador de Excel informa falla creando archivo,
'Entonces debe ser instalado y funcionando ;-))
Si oerr.nativeRor = -5036 entonces
Salir
Final si
Próximo
Respuesta. Visualización o controlador no disponible. (Re) instalar MDAC.
Response.Write Hex (err.number) & & err.description &
Para cada oerr en Oconn.errors
Response.Write hex (oerr.number) & & oerr.nativeError & & oerr.Description &
Próximo
Respuesta.
Final
Función getConnection (VConnString)
En el currículum de error siguiente
Establecer getConnection = server.CreateObject (ADODB.Connection)
GetConnection.open VConnString
Si err.number <> 0 entonces
Establecer getConnection = nada
Final si
Función final
Función OptionTag (VCHOICE, VTRUE)
Dim velected
Si vtrue entonces
vselected = seleccionado
Final si
OpcionTag = <option & vselected &> & _
Servidor.htmlencode (vChoice) y </opción> y vbcrlf
Función final
Función isChecked (vtrue)
Si vtrue entonces
IsChecked = marcado
Final si
Función final
Funciones bookOptions (vxlfile)
Dim Vserverfolder
Dim Ofs, Ofolder, Ofile
Dim velected
vserverfolder = server.mappath (.)
Establecer OFS = Server.CreateObject (scripting.filesystemObject)
Set Ofolder = OfS.GetFolder (vServerFolder)
Para cada uno de los archivos.
If ofile.type = Microsoft Excel Hoja de trabajo entonces entonces
vselected = (Ofile.name = vxlFile)
BookOptions = bookOptions & _
OptionTag (Ofile.name, VSelected)
Final si
Próximo
Conjunto de Ololder = nada
Establecer OFS = nada
Función final
Función namedRangeOptions (OCONN, VXLRANGE, VTableType)
Dim Oschemars
Dim velected
NamedRangeOptions = optionTag (vacío, vacío)
If typename (oconn) = conexión entonces
Establecer Oschemars = OConn.OpensChema (AdSchematables)
Haz mientras no Oschemars.eof
Si Oschemars (table_type) = vtableType entonces entonces
vselected = (Oschemars (table_name) = vxlRange)
NamedRangeOptions = namedRangeOptions & _
OptionTag (Oschemars (table_name), VSelected)
Final si
oschemars.movenext
Bucle
Final si
Función final
Función DataTable (OCONN, VXLRANGE, VXLHAHEADINGS)
En el currículum de error siguiente
'de OLEDBVBC.INC
Const db_e_errorsincommand = & h80040e14
Dim ors, Ofield
Dim vthtag, vthendtag
Si vxlHheadings entonces
vthtag = <th>
vthendtag = </th>
Demás
vthtag = <td>
vthendtag = </td>
Final si
DataTable = <table border = 1>
If typename (oconn) = conexión entonces
Establecer ORS = OConn.Execute ([& vxlRange &])
Si oconn.errors.count> 0 entonces entonces
Para cada Oconnerr en Oconn.Errors
Si oconnerg.number = db_e_errorsincommand entonces
DataTable = DataTable & _
<tr> <td> no hay tal rango: </td> <th> & vxlrange & </th> </tr>
Demás
DataTable = DataTable & _
<tr> <td> & oconnerg.description & </td> </tr>
Final si
Próximo
Demás
DataTable = dataTable & <tr>
Para cada campo en ORS.Fields
DataTable = dataTable & vthtag & ofield.name & vthendtag
Próximo
DataTable = dataTable & </tr>
Haz mientras no o.Eof
DataTable = dataTable & <tr>
Para cada campo en ORS.Fields
DataTable = dataTable & <td> & ofield.value & </td>
Próximo
DataTable = dataTable & </tr>
ORS.MoVENEXT
Bucle
Final si
Establecer ORS = nada
Demás
DataTable = DataTable & <tr> <td> archivo bloqueado por otra aplicación o de otra manera no accesible. No puede continuar. </td> </tr>
Final si
DataTable = DataTable & </table>
Función final
' --principal--
%>
<html>
<Evista>
<title> Leer Excel </title>
<Script Language = JavaScript>
<!-
función xlbook_onchange (theForm) {
con (theForm) {
Xlsheet.selectedIndex = 0;
Xlsheet.disable = true;
XlnamedRange.selectedIndex = 0;
XlnamedRange.disable = true;
XltypedRange.value = a: iv;
}
}
función xlsheet_onchange (theform) {
con (theForm) {
XlnamedRange.selectedIndex = 0;
XltypedRange.Value = xlsheet.options [xlsheet.selectedIndex] .Text;
}
}
función xlnamedRange_onchange (theForm) {
con (theForm) {
Xlsheet.selectedIndex = 0;
XltypedRange.Value = xlnamedRange.options [xlnamedRange.selectedIndex] .Text;
}
}
función xltypedRange_onchange (theForm) {
con (theForm) {
Xlsheet.selectedIndex = 0;
XlnamedRange.selectedIndex = 0;
}
}
//->
</script>
</ablo>
<Body>
<%
Dim vxlfile, vxlfilepath
Dim vxlrange, vxlHheadings
Dim VDISABLED
Dim VConnString
Dim Oconn, Oconnerr
Const adschematables = 20 'de Adovbs.inc
CheckxlDriver 'asegúrese de que esté funcionando
vxlfile = request (xlbook)
Si vxlfile <> vacío entonces
vxlRange = request (xltypedRange)
Si vxlrange = vacío entonces
vxlrange = a: iv
Demás
vxlRange = reemplazar (vxlRange,!, $)
Final si
vxlHheadings = request (xlHheadings)
'Establecer conexión
vxlfilePath = server.mappath (vxlfile)
VConnString = Driver = {Microsoft Excel Driver (*.xls)}; readonly = 1; dbq = & _ vxlfilePath
Establecer oconn = getConnection (VConnString)
Demás
VDISABLED = DISPABLED
Final si
%>
<form de nombre = myForm Method = post Action = <%= request.ServerVariAbles (script_name)%>>
<border de tabla = 1 ancho = 100%>
<tr>
<th> Libro de trabajo: </th>
<TD>
<select name = xlbook lenguaje = javaScript onChange = return xlbook_onchange (myform)>>
< %= BookOptions (vxlfile) %>
</elect> </td>
<td align = centro> hoja de trabajo: </td>
<TD> <SELECT <%= vDISABLED%> name = xlSheet Language = javaScript onChange = return xlSheet_onchange (myForm)>
< %= NamedRangeOptions (OCONN, VXLRANGE, Tabla del sistema) %>
</elect> </td>
</tr>
<tr>
<th> rango: </th>
<TD> <input type = text name = xltypedRange lenguaje = javascript onchange = return xltypedRange_onchange (myform)
valor = < %= vxlRange %>> </td>
<td align = center> rango nombrado: </td>
<TD> <SELECT <%= vDISABLED%> name = xlnamedRange lenguaje = javaScript onChange = return xlnamedRange_onchange (myForm)>
< %= NamedRangeOptions (OCONN, VXLRANGE, TABLA) %>
</elect> </td>
</tr>
<tr>
<th>
<p> </th>
<td colspan = 3>
<input type = checkbox name = xlhaSheadings
< %= IsChecked (vxlHheadings) %>
valor = true> Mostrar la primera fila como encabezados de columna </td>
</tr>
<tr>
<th>
<p> </th>
<td colspan = 3>
<a href = < %= vxlfile %>> < %= vxlfile %> </a>
</td>
</tr>
</table>
<input type = Subt Value = Subt Name = CMDSUBMIT>
<Input type = reset value = reset name = cmdReset>
</form> <hr>
<%
Si vxlrange <> vacía entonces
Response.Write DataTable (OCONN, VXLRANGE, VXLHASHEADINGS)
Final si
%>
</body>
</html>