1. Utiliser OWC
Qu'est-ce qu'OWC ?
OWC est l'abréviation d'Office Web Compent, qui est le composant Web Office de Microsoft. Il fournit un mécanisme flexible et basique pour dessiner des graphiques sur le Web. Dans un environnement intranet, si l'on peut supposer qu'un navigateur spécifique et des logiciels puissants (tels que IE5 et Office 2000) existent sur l'ordinateur client, il est alors possible d'utiliser Office Web Components pour fournir un environnement de développement graphique interactif. Dans ce mode, le poste client se partagera une grande partie de l'ensemble de la tâche.
<%Option explicite
ClasseExcelGen
ObjSpreadsheet privé
iColOffset privé
iRowOffset privé
SousClasse_Initialize()
Définir objSpreadsheet = Server.CreateObject("OWC.Spreadsheet")
iRowOffset = 2
iColOffset=2
Fin du sous-
sous-classe_Terminate()
Définir objSpreadsheet = Rien 'Nettoyer
Fin de la sous
-propriété publique Let ColumnOffset (iColOff)
Si iColOff > 0 alors
iColOffset = iColOff
Autre
iColOffset=2
Fin si
Propriété de fin Propriété
publique Let RowOffset(iRowOff)
Si iRowOff > 0 alors
iRowOffset = iRowOff
Autre
iRowOffset = 2
Fin si
Fin de la sous-propriété GenerateWorksheet (objRS)
'Remplit la feuille de calcul Excel en fonction du contenu d'un Recordset
'Commencez par afficher les titres
Si objRS.EOF alors quittez Sub
Dim objField, iCol, iRow
iCol = iColOffset
iRow = iRowOffset
Pour chaque objField dans objRS.Fields
objSpreadsheet.Cells(iRow, iCol).Value = objField.Name
objSpreadsheet.Columns(iCol).AutoFitColumns
'Définir la police dans le tableau Excel
objSpreadsheet.Cells(iRow, iCol).Font.Bold = True
objSpreadsheet.Cells(iRow, iCol).Font.Italic = False
objSpreadsheet.Cells(iRow, iCol).Font.Size = 10
objSpreadsheet.Cells(iRow, iCol).Halignment = 2 'Centré
iCol = iCol + 1
Suivant 'objField
'Afficher toutes les données
Faire sans objRS.EOF
iRangée = iRangée + 1
iCol = iColOffset
Pour chaque objField dans objRS.Fields
Si IsNull (objField.Value) alors
objSpreadsheet.Cells(iRow, iCol).Value = ""
Autre
objSpreadsheet.Cells(iRow, iCol).Value = objField.Value
objSpreadsheet.Columns(iCol).AutoFitColumns
objSpreadsheet.Cells(iRow, iCol).Font.Bold = False
objSpreadsheet.Cells(iRow, iCol).Font.Italic = False
objSpreadsheet.Cells(iRow, iCol).Font.Size = 10
Fin si
iCol = iCol + 1
Suivant 'objField
objRS.MoveNext
Boucle
End Sub Function SaveWorksheet(strFileName)
'Enregistre la feuille de calcul sous un nom de fichier spécifié
En cas d'erreur, reprendre ensuite
Appelez objSpreadsheet.ActiveSheet.Export(strFileName, 0)
SaveWorksheet = (Err.Number = 0)
Fonction de fin
Fin de classe
Dim objRS
Définir objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open "SELECT * FROM xxxx", "Provider=SQLOLEDB.1;Persist Security
Info=True;User ID=xxxx;Password=xxxx;Initial Catalog=xxxx;Data source=xxxx;"
Dim Enregistrer le nom
SaveName = Request.Cookies("savename") ("nom")
Dim objExcel
DimExcelChemin
ExcelPath = "Excel" & SaveName & ".xls"
Définir objExcel = Nouveau ExcelGen
objExcel.RowOffset = 1
objExcel.ColumnOffset = 1
objExcel.GenerateWorksheet(objRS)
Si objExcel.SaveWorksheet(Server.MapPath(ExcelPath)) alors
'Response.Write "<html><body bgcolor='gainsboro' text='#000000'>Enregistré en tant que fichier Excel.
<a href='" & server.URLEncode(ExcelPath) & "'>Download</a> "
Autre
Response.Write "Une erreur s'est produite lors de l'enregistrement !"
Fin si
Définir objExcel = Rien
objRS.Fermer
Définir objRS = Rien
%>
2. Utilisez le composant Application Excel pour exporter vers Excel ou Word sur le client
Remarque : "data" dans les deux fonctions est l'identifiant du tableau à exporter dans la page Web
<input type="hidden" name="out_word. " onclick="vbscript :buildDoc" value="Exporter vers Word" class="notPrint">
<input type="hidden" name="out_excel" onclick="AutomateExcel();" value="Exporter vers Excel" class="notPrint">
Exporter vers le code Excel
<SCRIPT LANGUAGE="javascript">
<!--
fonction AutomateExcel()
{
// Démarrez Excel et récupérez l'objet Application.
var oXL = new ActiveXObject("Excel.Application");
// Obtenez un nouveau classeur.
var oWB = oXL.Workbooks.Add();
var oSheet = oWB.ActiveSheet;
var table = document.all.data;
var hang = table.rows.length;
var lie = table.rows(0).cells.length;
// Ajoute des en-têtes de tableau cellule par cellule.
pour (i=0;i<hang;i++)
{
pour (j=0;j<lie;j++)
{
oSheet.Cells(i+1,j+1).value = table.rows(i).cells(j).innerText;
}
}
oXL.Visible = vrai ;
oXL.UserControl = vrai ;
}
//-->
</SCRIPT>
Exporter vers le code Word
<script language="vbscript">
Sous-buildDoc
définir la table = document.all.data
ligne = table.lignes.longueur
column = table.rows(1).cells.length
Set objWordDoc = CreateObject("Word.Document")
objWordDoc.Application.Documents.Add theTemplate, False
objWordDoc.Application.Visible=True
Dim theArray(20,10000)
pour i=0 à la ligne-1
pour j=0 à la colonne-1
theArray(j+1,i+1) = table.rows(i).cells(j).innerTEXT
suivant
suivant
objWordDoc.Application.ActiveDocument.Paragraphs.Add.Range.InsertBefore("Comprehensive Query Result Set") //Affiche le titre du tableau
objWordDoc.Application.ActiveDocument.Paragraphs.Add.Range.InsertBefore("")
Définir rngPara = objWordDoc.Application.ActiveDocument.Paragraphs(1).Range
Avec rngPara
.Bold = True //Mette le titre en gras
.ParagraphFormat.Alignment = 1 //Centrer le titre
.Font.Name = "official script" //Définir la police du titre
.Font.Size = 18 //Définir la taille de la police du titre
Terminer par
Définir rngCurrent = objWordDoc.Application.ActiveDocument.Paragraphs(3).Range
Définir tabCurrent = ObjWordDoc.Application.ActiveDocument.Tables.Add(rngCurrent,row,column)
pour i = 1 dans la colonne
objWordDoc.Application.ActiveDocument.Tables(1).Rows(1).Cells(i).Range.InsertAfter theArray (je,1)
objWordDoc.Application.ActiveDocument.Tables(1).Rows(1).Cells(i).Range.ParagraphFormat.alignment=1
suivant
Pour i = 1 à la colonne
Pour j = 2 à rangée
objWordDoc.Application.ActiveDocument.Tables(1).Rows(j).Cells(i).Range.InsertAfter theArray(i,j)
objWordDoc.Application.ActiveDocument.Tables(1).Rows(j).Cells(i).Range.ParagraphFormat.alignment=1
Suivant
Suivant
Fin du sous-marin
</SCRIPT>
3. Ouvrez-le directement dans IE, puis enregistrez-le en tant que fichier EXCEL.
Utilisez le format <table> pour afficher les données lues sur la page Web. En même temps, ajoutez la phrase suivante pour afficher l'EXCEL. table sur le client.
<%response.ContentType ="application/vnd.ms-excel"%>
Remarque : Dans la page affichée, seul <table> est affiché. Il est préférable de ne pas afficher d'informations autres que les autres tableaux.
4. Exportez au format CSV séparé par des virgules demi-largeur.
Utilisez la méthode fso pour générer un fichier texte et générez un fichier csv avec une extension. Dans ce fichier, une ligne correspond à une ligne du tableau de données. Générez des champs de table de données séparés par des virgules demi-largeur. (La méthode de génération de fichiers texte par fso ne sera pas présentée ici)
Introduction aux fichiers CSV (fichiers séparés par des virgules)
Sélectionnez cette option et le système créera un fichier CSV à télécharger ; CSV est le format de fichier le plus courant. Peut être importé. divers formulaires et bases de données PC très facilement.
Veuillez noter que même si vous sélectionnez Tableau comme format de sortie, vous pouvez toujours télécharger les résultats sous forme de fichier CSV. Au bas de l'écran de sortie du tableau, il y a une option "Fichier CSV", cliquez dessus pour télécharger le fichier.
Si vous configurez votre navigateur pour associer votre logiciel de feuille de calcul à des fichiers texte (TXT)/délimités par des virgules (CSV), le fichier s'ouvrira automatiquement lorsque vous le téléchargerez. Après le téléchargement, si EXCEL est installé localement, cliquez sur ce fichier pour l'ouvrir automatiquement avec le logiciel EXCEL.