Une façon d'utiliser Excel dans asp consiste à lier le fichier Excel en tant que base de données, puis l'opération est similaire à l'opération d'accès à la base de données. Cependant, cette méthode n’est pas toujours utile car Excel n’est pas une base de données relationnelle. Pour un format fixe, qui comporte une fusion de cellules complexe, des styles de bordure, des motifs, des relations de formule entre les cellules, etc., je pense que le moyen le plus simple de comprendre est d'ouvrir un paramètre existant en arrière-plan. Créez un fichier modèle, puis insérez les données à l'emplacement nécessaire, enregistrer et sortir...
La méthode mentionnée ici consiste à créer directement un objet Excel, ce qui facilite l'exécution de diverses opérations sur le document Excel en arrière-plan.
Une autre chose qui doit être définie côté serveur est l'autorisation de fonctionnement du composant COM. Tapez "DCOMCNFG" sur la ligne de commande pour accéder à l'interface de configuration du composant COM. Sélectionnez Microsoft Excel et cliquez sur le bouton Propriétés. Sélectionnez Personnalisé pour les trois options radio. Lors de l'édition, ajoutez Tout le monde à toutes les autorisations. Après avoir enregistré, redémarrez le serveur.
C'est très important. S'il n'est pas défini, les autres ordinateurs ne pourront pas terminer la création d'objets Excel.
Cependant, cette méthode présente également un inconvénient. Dans mon fonctionnement actuel, s'il existe déjà un fichier Excel ouvert sur le serveur, puis que vous exécutez le même fichier, une erreur se produira. Je ne comprends toujours pas pourquoi. des lieux qui n'ont pas été aménagés.
De plus, l'exemple de format de code dans l'article cité ci-dessus n'est pas complet et la plupart des sauts de ligne et des espaces ne sont pas dans un format précis. Si le code est complet, copiez simplement le code et il s'exécutera correctement, puis effectuez une recherche lente. et modifiez-le, et il sera facile de démarrer. Maintenant le code modifié est le suivant (la partie qui dessine le graphique a été supprimée) :
<%
En cas d'erreur, reprendre ensuite
strAddr=Server.MapPath(".")
set objExcelApp=CreateObject("Excel.Application")
objExcelApp.DisplayAlerts=false
objExcelApp.Application.Visible=false
objExcelApp.WorkBooks.Open(strAddr&"TempletNull.xls")
définir objExcelBook=objExcelApp.ActiveWorkBook
set objExcelSheets=objExcelBook.Worksheets
set objExcelSheet=objExcelBook.Sheets(1)
objExcelSheet.Range("B2:k2").Value=Array("Semaine1","Semaine2","Semaine3","Semaine4","Semaine5","Semaine6","Semaine7 ")
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").Sélectionnez
SaveAs(strAddr&"TempExcel.xls")
objExcelApp.Quitter
set objExcelApp=Rien
%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
<HTML>
<TÊTE>
<TITLE>NouveauDocument</TITLE>
<METANAME="Générateur"CONTENT=" MicrosoftFrontPage5.0">
<METANAME="Auteur"CONTENT="">
<METANAME="Mots clés"CONTENT="">
<METANAME="Description"CONTENT="">
</HEAD>
<CORPS>
</CORPS>
</HTML>
Après avoir utilisé le fichier Excel, vous devez générer le fichier. Pour le faire, utilisez la méthode de redirection vers Excel d'ASP. Parfois, il est ouvert directement dans IE, et parfois la fenêtre "Télécharger, Ouvrir, Enregistrer" apparaît si vous en avez besoin. pour l'ouvrir directement dans IE, utilisez simplement FSO pour charger le fichier Excel, puis affichez-le dans IE.
<%
Dim Fso,FileExt,strFilePath,Mime
strFilePath = "f:aspxuexi.doc"
Définir Fso=Server.CreateObject("Scripting.FileSystemObject")
FileExt = Fso.GetExtensionName(strFilePath)
Définir fso=Rien
Sélectionnez Case FileExt
Cas "doc"
Mime="Application/msword"
Cas "xls"
Mime="Application/msexcel"
Fin de sélection
Call OutPut(strFilePath,Mime)
'###################################### # #############
Fonction OutPut(strFilePath,Mime)
Réponse.ContentType = Mime
Const adTypeBinary = 1
Définir objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = adTypeBinary
objStream.LoadFromFile strFilePath
Réponse.BinaryWrite objStream.Read
objStream.Fermer
Définir objStream = Rien
Fonction de fin
'############################################## ## ###
%>
dans des applications pratiques. Lorsque le serveur exécute le programme Excel ou ACCESS, le client soumet pour créer Excel. L'objet application ne peut pas réussir. Dans une autre situation, lorsqu'un client soumet une demande, cela ne se termine pas, et la demande soumise par un autre client ne peut pas aboutir ! Il existe peut-être d'autres solutions à ce problème, mais au moins celle-ci est instable.
Il s'est avéré qu'il y avait des exemples de réussite similaires sur l'intranet de notre département. Lorsque je les ai découverts, j'ai découvert qu'ils créaient Excel sur le client. application. De cette façon, il n’y aura plus de conflits côté serveur. Pour le client, parce qu'il s'exécute sur le LAN, le niveau de sécurité IE du client peut être défini sur un niveau bas et le niveau correspondant actif (Enquête). Même s'il n'y a aucun paramètre, IE affichera une fenêtre d'avertissement : "Êtes-vous autorisé à exécuter activeX?"
Le code implémenté est similaire au journal précédent et est simplement le suivant :
<script langage="vbscript">
set objExcelApp=CreateObject("Excel.Application")
objExcelApp.DisplayAlerts=true
objExcelApp.WorkBooks.Open(" http://XXX.XXX.XXX/XXX.xls ")
'Le fichier xls de l'adresse réseau complète. Ce fichier a été formaté et imprimé et enregistré sur le serveur.
définir objExcelBook=objExcelApp.ActiveWorkBook
set objExcelSheets=objExcelBook.Worksheets
set objExcelSheet=objExcelBook.Sheets(1)
'====Voici les instructions pour remplir les données dans les cellules Excel. Si les données sont extraites de la base de données, ces instructions peuvent être générées par le programme en arrière-plan. Les colonnes dans ASP sont :
'Par exemple : réponse.write "objExcelSheet.Range(""B2"").Value="""&rs("XXX")&""""
'ou objExcelSheet.Range("B2").Value="<%=rs("XXX")%>"
objExcelSheet.Range("B2:k2").Value=Array("Week1","Week2"," Semaine3","Semaine4","Semaine5","Semaine6","Semaine7")
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.Quitter
'set objExcelApp=Rien
</script>
Dans le code ci-dessus
'objExcelApp.Quitter
'set objExcelApp=Rien n'est
utilisé comme annulation, car ne fermez pas excel.applicaition ici, sinon Excel sera fermé une fois les données renseignées. A ce moment, le fichier Excel ouvert sur le client doit être modifié ou imprimé par le client. Dans le même temps, l'objet objexcelapp dispose également de méthodes pour imprimer les paramètres et accéder à l'interface d'aperçu avant impression. Veuillez vous référer aux informations pertinentes relatives à Excel.