Bonjour
J'aimerais créer un fichier lisible par excel. Jusqu'à présent j'utilisais les csv qui sont assez simples à fabriquer, cependant il n'est pas possible de faire plusieurs feuilles
Comme il est possible de faire un fichier excel à partir d'un fichier html comprenant juste une table, j'ai alors essayé de reprendre la structure des fichiers excel exportés en html:
J'ai créé un fichier excel avec 2 feuilles, puis exporté en html et regardé ce qu'on obtenait:
- Un fichier "nom.htm"
- Un dossier "nom_fichiers" qui contient:
- La feuille 1
- La feuille 2
- La feuille de style
- Une tabstrip
- Une filelist (xml qui répertorie tous les fichiers)
Après un gros nettoyage, on obtient ces 3 fichiers:
- test.xls (test.htm renommé)
- sheet001.htm
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 <html xmlns:x="urn:schemas-microsoft-com:office:excel"> <head> <meta name="Excel Workbook Frameset"> <xml> <x:ExcelWorkbook> <x:ExcelWorksheets> <x:ExcelWorksheet> <x:Name>Feuil1</x:Name> <x:WorksheetSource HRef="test_fichiers/sheet001.htm"/> </x:ExcelWorksheet> <x:ExcelWorksheet> <x:Name>Feuil2</x:Name> <x:WorksheetSource HRef="test_fichiers/sheet002.htm"/> </x:ExcelWorksheet> </x:ExcelWorksheets> </x:ExcelWorkbook> </xml> </head> <body> <frameset> <frame src="test_fichiers/sheet001.htm"> <frame src="test_fichiers/sheet002.htm"> </frameset> </body> </html>
- sheet002.htm
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 <html xmlns:x="urn:schemas-microsoft-com:office:excel"> <head> <meta name=ProgId content=Excel.Sheet> <!--[if gte mso 9]><xml> <x:WorksheetOptions> <x:ProtectScenarios>False</x:ProtectScenarios> </x:WorksheetOptions> </xml><![endif]--> </head> <body> <table x:str border=0 cellpadding=0 cellspacing=0 width=160 style='border-collapse: collapse;table-layout:fixed;width:120pt'> <tr> <td>valeur1</td> <td>valeur2</td> </tr> <tr> <td>valeur3</td> <td>valeur4</td> </tr> </table> </body> </html>
Similaire à la sheet001
Lorsque j'ouvre mon fichier xls, tout se passe (presque) bien. Le fichier a bien deux feuilles, elles sont bien construites et on peut passer de l'une à l'autre sans problème. Le SEUL petit problème (mis à part que ma solution est vraiment déplorable), c'est qu'en ouvrant le fichier excel il y a un message d'avertissement:
"Certains fichiers de cette page Web ne se trouvent pas à l'emplacement prévu. Voulez-vous les télécharger quand même ? Si vous êtes sûr de la source de cette page Web, cliquez sur Oui."
En cliquant sur "Oui", tout marche. Seulement il faut avouer que c'est chiant de devoir cliquer sur Oui à chaque fois ..
Ma question est donc (enfin!!) la suivante, est-ce que quelqu'un a été confronté au même problème et pourrait m'aider ? Vu que je dois simplement créer un fichier excel et non le lire, il doit bien exister une solution ?
Merci beaucoup.
Yuuk
Partager