Le contenu principal de cet article est d'utiliser ASP pour sortir des exemples de fichiers Excel.
Une façon d'utiliser Excel dans ASP est de relier le fichier Excel en tant que base de données, et l'opération est similaire à l'opération de base de données d'accès. Pour un format fixe, ce format contient une fusion complexe de cellules, des styles de frontière, des modèles, des relations de formule entre les cellules, etc. , sauvegarder, sortie ...
La méthode mentionnée ici est de créer directement un objet Excel, qui peut effectuer diverses opérations sur le document Excel plus commodément en arrière-plan.
Le côté serveur doit également définir les autorisations de fonctionnement des composants COM. Tapez DCOMCNFG sur la ligne de commande et entrez l'interface de configuration du composant COM. Redémarrez le serveur après l'enregistrement.
C'est très important.
Cependant, cette méthode a également un inconvénient. n'ont pas été configurés correctement.
De plus, le format de code d'exemple dans l'article cité ci-dessus n'est pas très complet, et beaucoup de ruptures de ligne et d'espaces sont inexactes. Recherchez et modifiez-le, il sera facile de commencer.
Code du programme:
- <%
- Onerrorresumenext
- straddr = server.mappath (.)
- setObJexcelApp = CreateObject (Excel.Application)
- objexcelapp.displayAlerts = false
- objexcelapp.application.visible = false
- objexcelapp.workbooks.open (Straddr & / Templet / Null.xls)
- setObjexcelBook = objexcelapp.activeworkbook
- setObjexcelsheets = objexcelbook.Worksheets
- setObjexceLsheet = objexcelbook.sheets (1)
- Objexcelsheet.Range (B2: K2) .Value = Array (Week1, Week2, Week3, Week4, Week5, Week6, Week7)
- ObjexcelSheet.Range (B3: K3) .Value = Array (67,87,5,9,7,45,45,54,54,10)
- ObjexcelSheet.Range (B4: K4) .Value = Array (10,10,8,27,33,37,50,54,10,10)
- ObjexcelSheet.Range (B5: K5) .Value = Array (23,3,86,64,60,18,5,1,36,80)
- objexcelsheet.cells (3,1) .value = InternetExplorer
- objexcelsheet.cells (4,1) .value = netscape
- objexcelsheet.cells (5,1) .value = autre
- objexcelsheet.range (b2: k5) .Select
- SAVEAS (Straddr & / Temp / Excel.xls)
- objexcelapp.quit
- setObjexcelApp = rien
- %>
- <! Doctypehtmlpublic - // w3c // dtdhtml4.0transitional // en>
- <html>
- <adal>
- <Title> newDocument </Title>
- <Métaname = générateur-content = MicrosoftFrontPage5.0>
- <Métaname = auteur-autoritaire =>
- <Metaname = keywordScontent =>
- <Métaname = descriptionContent =>
- </ Head>
- <body>
- </docy>
- </html>
Après avoir fonctionné le fichier Excel, vous devez sortir le fichier. Pour ouvrir directement dans IE, ne le mettez pas à charger le fichier Excel avec FSO, puis à le sortir dans IE.
Code du programme:
- <%
- Dimfso, fichierext, strfilepath, mime
- strfilepath = f: /aspxuexi.doc
- Setfso = server.createObject (scripting.fileSystemObject)
- FileExt = fso.getExtensionName (strFilePath)
- Setfso = rien
- SelectCaseFileExt
- Casédoc
- Mime = application / msword
- Casexls
- Mime = application / msexcel
- Se licez
- CallOutput (strfilepath, mime)
- '################################################### #####
- FunctionOutput (strFilepath, mime)
- Réponse.contentType = mime
- Constadtypebinary = 1
- SetObjstream = server.createObject (Adodb.stream)
- objstream.open
- objstream.type = adtypebiny
- objstream.loadfromfilestrFilepath
- Réponse.binarywriteobjstream.read
- objstream.close
- SetObjstream = rien
- Finition de fin
- '################################################### #####
- %>
Dans l'application réelle, lorsque le serveur exécute un programme Excel ou d'accès, le client soumet l'établissement de l'objet Excel.Application sans succès. . La demande ne peut pas non plus réussir!
Il y a des exemples réussis sur le réseau interne de notre département. En fonctionnant sur le réseau local, le niveau de sécurité du client IE est que vous pouvez régler bas et permettre l'exécution d'ActiveX pertinent (c'est-à-dire définir toutes sortes de choses liées à la sécurité à permettre dans les options d'outils IE, et quel élément spécifique n'est pas enquêté).
Le code implémenté est similaire au journal précédent, et le plus simple est le suivant:
Code du programme:
- <ScriptLanguage = VBScript>
- setObJexcelApp = CreateObject (Excel.Application)
- objexcelapp.displayAlerts = true
- objexcelapp.workbooks.open (http://xxx.xxx.xxx/xxx.xls)
- 'Le fichier XLS avec l'adresse réseau complète, ce fichier a été formaté et imprimé, et enregistré sur le serveur
- setObjexcelBook = objexcelapp.activeworkbook
- setObjexcelsheets = objexcelbook.Worksheets
- setObjexceLsheet = objexcelbook.sheets (1)
- '==== Voici des instructions qui remplissent les données sur les cellules Excel.
- 'Par exemple: réponse.writeObjexcelSheet.Range (b2) .value = & rs (xxx) &
- 'ou objexcelSheet.Range (b2) .value = <% = rs (xxx)%>
- Objexcelsheet.Range (B2: K2) .Value = Array (Week1, Week2, Week3, Week4, Week5, Week6, Week7)
- ObjexcelSheet.Range (B3: K3) .Value = Array (67,87,5,9,7,45,45,54,54,10)
- ObjexcelSheet.Range (B4: K4) .Value = Array (10,10,8,27,33,37,50,54,10,10)
- ObjexcelSheet.Range (B5: K5) .Value = Array (23,3,86,64,60,18,5,1,36,80)
- objexcelsheet.cells (3,1) .value = InternetExplorer
- objexcelsheet.cells (4,1) .value = netscape
- objexcelsheet.cells (5,1) .value = autre
- '=======================.
- 'objexcelapp.quit
- 'setObJexcelApp = rien
- </cript>
Dans le code ci-dessus
- 'objexcelapp.quit
- 'setObJexcelApp = rien
En annulation, ne fermez pas Excel.Applicaition ici, sinon Excel sera fermé après la réalisation des données.
Ce qui précède est l'ensemble du processus d'utilisation des fichiers Excel ASP.