El contenido principal de este artículo es usar ASP para obtener ejemplos de archivos de Excel.
Una forma de usar Excel en ASP es vincular el archivo de Excel como una base de datos, y la operación es similar a la operación de la base de datos de acceso. Para un formato fijo, este formato contiene fusión de células complejas, estilos de línea de borde de borde, patrones, relaciones de fórmula entre celdas, etc. Creo que lo más fácil de entender es abrir una configuración existente en el fondo de buena plantilla, luego inserte datos donde sea necesario , Guardar, salida ...
El método mencionado aquí es crear directamente un objeto Excel, que puede realizar varias operaciones en el documento de Excel de manera más conveniente en el fondo.
El lado del servidor también debe establecer los permisos de operación de los componentes COM. Escriba DCOMCNFG en la línea de comandos y ingrese la interfaz de configuración del componente COM. Reinicie el servidor después de guardar.
Es muy importante.
Sin embargo, este método también tiene un inconveniente. no se han configurado correctamente.
Además, el formato de código de ejemplo en el artículo citado anteriormente no es muy completo, y muchas de las salidas y espacios de línea son inexactos. Investigar y modificarlo, será fácil comenzar.
Código de programa:
- <%
- OnerrorResumEnext
- straddr = server.mappath (.)
- setobjexcelapp = createObject (Excel.Application)
- objexcelapp.displayalerts = falso
- objexcelapp.application.visible = false
- objexcelapp.workbooks.open (Straddr &/Templet/null.xls)
- setobjexcelbook = objexcelapp.activeworkbook
- setobjexcelsheets = objexcelbook.worksheets
- setobjexcelsheet = objexcelbook.sheets (1)
- obtexcelsheet.range (B2: K2) .Value = Array (Week1, Week2, Week3, Week4, Week5, Week6, Week7)
- obtexcelsheet.range (b3: k3) .value = array (67,87,5,9,7,45,45,54,54,10)
- obtexcelsheet.range (b4: k4) .value = array (10,10,8,27,33,37,50,54,10,10)
- obtexcelsheet.range (B5: K5) .Value = Array (23,3,86,64,60,18,5,1,36,80)
- obtexcelsheet.cells (3,1) .value = Internetexplorer
- obtexcelsheet.cells (4,1) .value = netscape
- obtexcelsheet.cells (5,1) .value = otro
- obtexcelsheet.range (b2: k5) .select
- Saveas (Straddr &/Temp/Excel.xls)
- objexcelapp.quit
- setobjexcelapp = nada
- %>
- <! DOCTYPEHTMLPublic-// w3c // dtdhtml4.0Transitional // en>
- <html>
- <Evista>
- <title> newDocument </title>
- <Metaname = generatorContent = MicrosoftFrontPage5.0>
- <Metaname = autorContent =>
- <Metaname = keywordScontent =>
- <Metaname = descriptionContent =>
- </ablo>
- <Body>
- </body>
- </Html>
Después de operar el archivo de Excel, debe emitir el archivo. Para abrir directamente en IE, no lo ponga, cargue el archivo de Excel con FSO y luego lo emita en IE.
Código de programa:
- <%
- Dimfso, fileext, strfilepath, mime
- strfilepath = f: /aspxuexi.doc
- Setfso = server.createObject (scripting.filesystemObject)
- Fileext = fso.getExtensionName (strFilePath)
- Setfso = nada
- Seleccionarfileext
- Cascano
- Mime = aplicación/msword
- Casexls
- Mime = aplicación/msexcel
- EndSelectar
- Calloutput (strfilepath, mime)
- '############################################# #####
- FunctionOutput (strfilepath, mime)
- Respuesta.ContentType = Mime
- Constadtypebinary = 1
- Setobjstream = server.createObject (ADODB.Stream)
- objstream.
- objstream.type = adtypeBinar
- objstream.loadFromFilestrFilepath
- Respuesta.BinaryWriteObJStream.Read
- objstream.close
- Setobjstream = nada
- Función final
- '############################################# #####
- %>
En la aplicación real, cuando el servidor ejecuta un programa de Excel o Access, el cliente envía el establecimiento del objeto Excel.Application sin éxito. ¡La solicitud tampoco puede tener éxito!
Hay ejemplos exitosos relacionados en la red interna de nuestro departamento. Ejecutando en la red de área local, el nivel de seguridad del cliente IE es que puede establecer bajo y permitir la ejecución de ActiveX relevante (es decir, establecer todo tipo de cosas relacionadas con la seguridad para permitir en las opciones de herramienta de IE, y qué elemento específico no es Investigado).
El código implementado es similar al registro anterior, y el más simple es el siguiente:
Código de programa:
- <scriptLanguage = vBscript>
- setobjexcelapp = createObject (Excel.Application)
- objexcelapp.displayalerts = verdadero
- objexcelapp.workbooks.open (http://xxx.xxx.xxx/xxx.xls)
- 'El archivo XLS con la dirección de red completa, este archivo ha sido formateado e imprimido, y guardado en el servidor
- setobjexcelbook = objexcelapp.activeworkbook
- setobjexcelsheets = objexcelbook.worksheets
- setobjexcelsheet = objexcelbook.sheets (1)
- '==== Aquí hay declaraciones que completan datos en las celdas de Excel.
- 'Por ejemplo: Response.WriteOBJExcelsheet.Range (B2) .Value = & rs (xxx) &
- 'u obtexcelsheet.range (b2) .value = <%= rs (xxx)%>
- obtexcelsheet.range (B2: K2) .Value = Array (Week1, Week2, Week3, Week4, Week5, Week6, Week7)
- obtexcelsheet.range (b3: k3) .value = array (67,87,5,9,7,45,45,54,54,10)
- obtexcelsheet.range (b4: k4) .value = array (10,10,8,27,33,37,50,54,10,10)
- obtexcelsheet.range (B5: K5) .Value = Array (23,3,86,64,60,18,5,1,36,80)
- obtexcelsheet.cells (3,1) .value = Internetexplorer
- obtexcelsheet.cells (4,1) .value = netscape
- obtexcelsheet.cells (5,1) .value = otro
- '=========================
- 'objexcelapp.quit
- 'setobjexcelapp = nada
- </script>
En el código anterior
- 'objexcelapp.quit
- 'setobjexcelapp = nada
Como cancelación, no cierre Excel.ApplicAition aquí, de lo contrario, Excel se cerrará después de que se llenen los datos.
Lo anterior es todo el proceso de uso de ASP para emitir archivos de Excel.