Convertissez le HTML aux formats Microsoft Excel. Conversion d'Excel en HTML : correcte, de haute qualité, simple Convertir un tableau en code HTML

Parfois, un responsable vient et dit : « Je veux voir ce tableau sur le site Internet ».
Et il part.
Deux voies standards se dégagent :
- soit via un panneau d'administration dans l'éditeur, créez un tableau et remplissez-le de valeurs ;
- ou manuellement directement dans le code HTML et remplissez-le également avec des valeurs.
Et ce n'est pas grave s'il y a 3x5 cellules, et s'il y en a plus.

Ayant rencontré un problème similaire il y a plusieurs années, j'ai découvert une méthode basée sur en utilisant Windows Live Writer (logiciel permettant de rédiger et d'envoyer des articles sur certaines plateformes de blogs).

C'est simple. Nous collons le tableau copié dans WLW à l'aide d'une colle spéciale, en préservant le format.

Ensuite, allez dans l'onglet « Source » du bas dans WLW et copiez tout l'énorme code du champ

Il s'avère que le résultat est identique ou presque identique à celui de l'original. Cela prend quelques secondes, sans compter les coûts ponctuels liés à l'association de WLW à un compte de blog.
Exemple ici codepen

En conséquence, nous obtenons une seule page de 320 lignes de texte.

Là, il vous reste encore à trouver ce dont vous avez besoin...

Si vous avez créé une belle feuille de calcul dans Excel et que vous souhaitez maintenant la publier sous forme de page Web, alors la manière la plus simple pour ce faire, il suffit de l'exporter vers un bon vieux fichier HTML. Dans cet article, nous examinerons plusieurs façons de convertir des données d'Excel en HTML, déterminerons les avantages et les inconvénients de chaque méthode et travaillerons avec vous pour effectuer cette conversion étape par étape.

Convertir des feuilles de calcul Excel en HTML à l'aide de l'outil Enregistrer sous une page Web

Supposons que vous ayez créé un rapport riche dans Excel et que vous souhaitiez maintenant exporter toutes ces informations, ainsi qu'un graphique et un tableau croisé dynamique, vers le site Web de votre entreprise afin que vos collègues puissent le consulter en ligne via des navigateurs Web sans avoir à ouvrir Excel.

Pour convertir des données Excel en HTML, procédez comme suit. Ces instructions s'appliquent à Excel 2013, 2010 et 2007.


Conseil: Si c'est la première fois que vous convertissez un classeur Excel en fichier HTML, il peut être judicieux d'enregistrer d'abord la page Web sur votre disque dur afin de pouvoir apporter les modifications si nécessaire avant de publier la page en ligne ou sur votre réseau local.

Commentaire: Le code HTML généré par Excel n'est pas très propre ! Ce sera génial quand, après avoir converti un grand tableau au design complexe, vous l'ouvrirez dans n'importe quel éditeur HTML et nettoyerez le code avant de le publier. En conséquence, la page du site se chargera sensiblement plus rapidement.

5 choses à retenir lors de la conversion de fichiers Excel en HTML

Lorsque vous utilisez l'outil Enregistrer sous une page Web, il est important de comprendre comment fonctionnent ses principaux paramètres afin de ne pas tirer le meilleur parti erreurs typiques et évitez les messages d'erreur les plus courants. Dans cette rubrique vous trouverez bref aperçu ces paramètres auxquels vous devez prêter une attention particulière lors de la conversion de fichiers Excel en HTML.

1. Fichiers et hyperliens pris en charge

Comme vous le savez, les pages Web contiennent souvent des images et d’autres fichiers de support, ainsi que des hyperliens vers d’autres sites Web. En convertissant un fichier Excel en page Web, l'application collecte automatiquement les fichiers et les hyperliens associés pour vous et les enregistre dans un dossier de support.

Lorsque vous enregistrez des fichiers de support, tels que des graphiques et des textures d'arrière-plan, sur le même serveur Web, Excel crée tous les liens relatif. Un lien relatif (URL) pointe vers un fichier du même site Web ; il spécifie le nom du fichier ou du dossier racine au lieu du nom complet du site (par exemple, href="/images/001.png"). Lorsque vous supprimez un élément stocké sous forme de lien relatif, Microsoft Excel supprime automatiquement fichier lié du dossier auxiliaire.

La règle principale est donc Enregistrez toujours la page Web et les fichiers de support au même endroit, sinon la page Web ne s'affichera pas correctement. Si vous déplacez ou copiez votre page Web vers un autre emplacement, assurez-vous que le dossier de support est copié au même emplacement, sinon les liens ne seront pas corrects. Si vous réenregistrez la page Web dans un autre emplacement, Microsoft Excel copiera automatiquement le dossier de support.

Si vous enregistrez des pages Web à différents emplacements ou si le fichier Excel contient des hyperliens vers des sites Web externes, alors dans de tels cas absolu links. Les liens absolus contiennent le chemin complet d'un fichier ou d'une page Web, accessible de n'importe où, par exemple : www.votre-domaine/section/page.htm.

2. Apporter des modifications et réenregistrer la page Web

En théorie, vous pouvez enregistrer un classeur Excel en tant que page Web, puis ouvrir la page Web résultante dans Excel, apporter des modifications et réenregistrer le fichier. Toutefois, dans ce cas, certaines fonctionnalités d’Excel ne seront pas disponibles. Par exemple, tous les graphiques contenus dans votre classeur se transformeront en dessins indépendants et vous ne pourrez pas les modifier dans Excel comme vous le faisiez auparavant.

C'est pourquoi, la meilleure façon mettra d'abord à jour le classeur Excel d'origine avec certaines modifications, puis l'enregistrera en tant que classeur Excel (.xlsx), puis le reconvertira seulement en page Web.

3. Republier automatiquement une page Web

Si vous avez coché la case à côté de l'option Republiation automatique(Republier automatiquement) dans la boîte de dialogue Publier en tant que page Web(Publier une page Web) que nous avons mentionné plus tôt dans cet article, votre page Web sera automatiquement mise à jour à chaque fois que vous enregistrerez un classeur. Cette fonctionnalité est très utile et vous permet de toujours garder à jour une copie en ligne de votre feuille de calcul Excel.

Si vous activez l'option Republiation automatique(Republier automatiquement), chaque fois que vous enregistrez un classeur, un message apparaîtra vous demandant de confirmer si vous souhaitez activer ou désactiver la republiation automatique. Si vous souhaitez que la feuille Excel soit automatiquement publiée, sélectionnez Activer…(Activer...) et cliquez sur D'ACCORD.

Cependant, il peut arriver que vous ne souhaitiez pas publier automatiquement une feuille de calcul Excel ou ses éléments, par exemple si le fichier contient informations confidentielles ou a été modifié par une personne autre que le fiduciaire. Dans ce cas, vous pouvez désactiver temporairement ou définitivement la republication automatique.

Pour désactiver temporairement la republiation automatique, sélectionnez la première option proposée dans le message ci-dessus : Désactivez la fonctionnalité de republication automatique lorsque ce classeur est ouvert(Désactivez la fonction de republication automatique lorsque ce livre est ouvert.) Cela désactivera la publication automatique pour la session Excel en cours, mais la réactivera la prochaine fois que vous ouvrirez le classeur.

Pour désactiver définitivement la republication automatique pour tous les éléments sélectionnés, ouvrez votre classeur Excel, accédez à la boîte de dialogue Publier en tant que page Web(Publier la page Web) et cliquez sur le bouton Publier(Publier). Dans la rubrique Articles à publier(Éléments publiés) dans la liste Choisir(Sélectionner) sélectionnez l'élément que vous ne souhaitez pas publier et cliquez sur le bouton Retirer(Supprimer).

4. Fonctionnalités Excel non prises en charge sur les pages Web

Malheureusement, certaines fonctionnalités Excel très utiles et populaires deviennent indisponibles lorsque vous convertissez vos feuilles Excel en HTML :

  • Umise en forme de mots non pris en charge lors de l'enregistrement d'une feuille Excel sous Page Web à fichier unique(Page Web dans ce fichier), alors assurez-vous de l'enregistrer sous Page web(Page web). Les histogrammes, les échelles de couleurs et les jeux d'icônes ne sont pas pris en charge par les deux formats de page Web.
  • Rotation ou vetexte vertical n'est pas pris en charge lors de l'exportation de données d'Excel vers un format de page Web. Tout texte pivoté ou vertical dans votre classeur sera converti en texte horizontal.

5. Les difficultés les plus courantes rencontrées lors de la conversion de fichiers Excel en HTML

Lors de la conversion d'un classeur Excel en page Web, vous pouvez rencontrer les difficultés connues suivantes.

Camarades de classe

ALEXÉI MICHURIN

Conversion d'Excel en HTML :

correct, de haute qualité, simple

Notre tâche est donc de convertir correctement un document du format xls au format HTML, en tenant compte du formatage du document source, et en même temps de nous débrouiller avec « peu de sang »

Énoncé du problème. Ou quel est le problème ?

De nombreux webmasters sont souvent confrontés au défi de la conversion Fichiers Microsoft Excel dans d'autres formats. Cela se heurte souvent à des difficultés, puisque le format xls, comme chacun le sait, n'est pas documenté.

Dans certains cas, il est possible de sauvegarder Données Excel dans des formats documentés et leur traitement ultérieur. Mais souvent, cette méthode ne fonctionne pas de manière satisfaisante. Les formats simples, pratiques pour le traitement, ne sont pas en mesure de conserver toutes les informations sur le formatage du document, et la mise en œuvre d'un gestionnaire pour les formats complexes demande trop de travail.

Il n'est pas nécessaire de chercher bien loin un exemple. De nombreuses entreprises qui possèdent leurs propres pages Web et les mettent régulièrement à jour mènent leurs activités avec en utilisant Excel. Chaque fois qu'une information est mise à jour sur le serveur, le webmaster est confronté à la tâche de conversion. De plus, la tâche peut être compliquée par les aspects suivants :

Premièrement, il s’agit d’un changement de conception. La liste de prix préparée dans Excel est généralement conçue pour être imprimée sur une imprimante noir et blanc. Liste de prix sur le site Web - non. Au moins pour cette raison, un simple « Enregistrer en tant que page Web » ne convient pas (je ne parle pas de la qualité du code HTML obtenu lors de l'enregistrement de cette façon).

Deuxièmement, lors de la conversion, il est nécessaire de prendre en compte les spécificités d'Excel. Par exemple, de nombreuses personnes qui modifient une liste de prix utilisent largement la commande Format/Row/Hide. Dans ce cas, la hauteur de la ligne devient nulle et la ligne semble disparaître de l'écran et à l'impression. Il est clair que de telles lignes ne devraient pas se retrouver sur le site Internet. Cependant, elles sont parfaitement enregistrées dans d'autres formats et ne diffèrent pas des chaînes normales non masquées. Il en résulte que la doctrine « Enregistrer sous forme de texte et de processus délimités » ne produit pas de résultats satisfaisants.

Troisièmement, la liste de prix utilise souvent un formatage dont la préservation est essentielle. Par exemple, les noms de certains produits peuvent être barrés ou surlignés en couleur pour indiquer que ces produits étaient et seront certainement, mais maintenant ils ne le sont plus. Certains éléments peuvent être en italique, etc. Toutes ces informations disparaissent sans laisser de trace si vous enregistrez la liste de prix dans un format simple, par exemple sous forme de texte délimité par des tabulations.

Notre tâche est donc de convertir correctement un document du format xls au format HTML, en tenant compte du formatage du document source, et en même temps de nous débrouiller avec « peu de perte ».

Je suggère de diviser cette tâche en deux. La première consiste à sauvegarder les données dans un format simple, qui contiendra néanmoins toutes les informations dont nous avons besoin sur la mise en page du document. La seconde consiste à traiter ce format et à créer une page HTML.

Je propose de résoudre la première tâche (exporter) à l'aide d'Excel. Ici, nous n'avons en fait pas le choix, le format xls ne peut être traité que par la seule application au monde qui le comprend. C'est de la dialectique.

Je propose de résoudre le deuxième problème en utilisant le langage Perl. Pourquoi? Parce que ce langage est axé sur le travail avec des chaînes et la résolution de problèmes comme le nôtre (Perl - Practical Extraction and Report Language - c'est ce dont nous avons besoin). Parce que de nombreux programmeurs impliqués dans le développement Web connaissent ce langage (si vous n'en faites pas partie et envisagez de travailler sur le Web, je vous recommande sincèrement de prêter attention à Perl). Parce que ce langage est gratuit et accessible à tout utilisateur sur n’importe quelle plateforme. Et parce que mon code Perl peut ensuite être facilement modifié, l'obligeant, par exemple, à placer chaque section de liste de prix dans un fichier séparé, à trier les éléments de la liste de prix de différentes manières, à suivre les mises à jour et la dynamique des prix, à fournir à chaque article des champs de formulaire HTML. pour une commande en ligne dans une boutique en ligne... Au final, mon script peut facilement être transformé en une application CGI pour administrer un serveur web.

Cette solution me semble la plus flexible, fonctionnelle et compacte, car chaque partie du problème est résolue par l'outil le plus adapté pour le résoudre.

Commençons par un exemple précis. En tant que « cobaye », je propose la liste de prix suivante (voir fig. 1).

Comme vous pouvez le constater, il regroupe tous les éléments désagréables cités plus haut : et la mise en forme (fond, barrés, caractères gras), et les lignes cachées (si vous regardez attentivement, vous remarquerez qu'après la neuvième ligne il y a une douzième ligne). Allons-y.

Exporter des données depuis Excel

Commençons par résoudre le premier problème. Pour exporter des données depuis Excel, je propose une macro simple en Visual Basic (les numéros de ligne sont donnés uniquement pour faciliter les commentaires) :

1 : sous-table2table()

2: "

3 : "macro qui enregistre le fragment sélectionné de la table

4 : " au format texte avec des notes de mise en forme

5: "

6 : Avec ActiveWindow.RangeSelection

7 : c1 = .Colonnes.Colonne

8 : c2 = .Columns.Count - 1 + c1

9 : r1 = .Rangées.Rangée

10 : r2 = .Rows.Count - 1 + r1

11 : Terminer par

12 : Si (r1 - r2 = 0 Et c1 - c2 = 0) Alors

13 : MsgBox_

14 : "quelque chose n'est pas suffisamment alloué (pour la sauvegarde) ,-)", _

15 : vbCritical, "message macro"

16 : Fin si

17 : fileSaveName = Application.GetSaveAsFilename(_

18 : NomFichierInitial :="fichier", _

19 : fileFilter:="Fichiers texte (*.txt), *.txt", _

20 : Titre :="enregistrer la page dans notre format")

21 : Si fileSaveName = False Alors

22 : MsgBox_

23 : "le fichier n'a pas été sélectionné. Aucune action n'a été entreprise.", _

24 : vbCritical, "message macro"

25 : Autrement

28 : Ouvrir fileSaveName pour la sortie en tant que #1

29 : Pour r = r1 À r2

30 : l = CStr(Lignes(r).RowHeight)

31 : Pour c = c1 À c2

32 : Avec des cellules (r, c)

33 : l = l + sep + CStr(.Texte) + _

37 : Terminer par

38 : Suivant

39 : Imprimer #1, l

40 : Suivant

41 : Fermer #1

42 : Fin si

43 : Fin du sous-marin

Cette macro enregistre la partie sélectionnée de la liste de prix dans un fichier spécifié. La macro peut être ajoutée à la version de travail de la liste de prix et créer un bouton pour l'appeler (en dehors de la zone d'impression), ou elle peut être stockée dans fichier séparé. Le placer dans un document est très simple : appelez Visual Basic Editor (menu : « Outils -> Macro -> Visual Basic Editor » ; ou ), créer nouveau module(menu : « Insérer -> Module ») et saisissez le texte donné ici (sans les numéros de ligne). Vous pouvez maintenant dessiner un bouton (un outil dans le panneau Formulaires) et lui attribuer une macro.

Jetons un coup d'œil rapide au fonctionnement de ce code.

La première ligne est la déclaration de macro. Comme vous pouvez le voir, je l'ai appelé simplement table2table, vous pouvez l'appeler plus sonorement.

Aux lignes 6 à 11, nous définissons les limites de la partie sélectionnée du document (après tout, nous ne sauvegarderons que la partie sélectionnée). Maintenant, c1 et c2 sont les numéros de la première et de la dernière colonne, et r1 et r2 sont les première et dernière lignes de la zone sélectionnée.

Ensuite, aux lignes 12 à 16, nous vérifions si la zone a été sélectionnée ou si notre macro ne devra fonctionner qu'avec une seule cellule. Bien sûr, vous n'êtes pas obligé de le faire, mais ce n'est probablement pas vous qui exécuterez cette macro, mais les responsables qui éditent la liste de prix ne peuvent pas toujours compter sur leur exactitude. Ainsi, si rien n'a été sélectionné, notre macro émettra un avertissement (voir Fig. 2).

Aux lignes 17 à 20, nous appelons la boîte de dialogue Application.GetSaveAsFilename afin que l'utilisateur puisse sélectionner un nom de fichier (voir Figure 3).

Encore une fois, vous pouvez simplement spécifier un nom fixe, mais je trouve cela gênant même si vous exécutez la macro vous-même.

Les lignes 21 à 42 contiennent une construction if-then-else qui vérifie si un nom de fichier a été spécifié à enregistrer ou si l'utilisateur a cliqué sur le bouton « Annuler » de la boîte de dialogue « Enregistrer sous... ».

Si l'utilisateur refuse de sauvegarder, alors un message correspondant s'affiche (lignes 22 à 24) ; si le nom du fichier est spécifié, alors la partie la plus intéressante commence : la sauvegarde des données.

Mais avant de discuter de la procédure de sauvegarde (lignes 26 à 41), disons quelques mots sur le format exact dans lequel nous avons l'intention de sauvegarder les données. Je propose le format de traitement le plus simple : le texte ASCII. Chaque ligne correspond à une ligne du tableau en cours de sauvegarde. Les champs sont séparés par des délimiteurs à un seul caractère. Le premier champ est la hauteur de la ligne (cette information est nécessaire pour filtrer les lignes « masquées »). Tous les champs suivants constituent le contenu des cellules, mais chacun de ces champs contient plusieurs sous-champs séparés par leurs propres délimiteurs. Les sous-champs contiennent diverses informations sur la cellule : contenu, options de formatage.

Nos séparateurs de champs et de sous-champs sont spécifiés par des codes ASCII aux lignes 26 et 27, respectivement. Vous pouvez choisir des séparateurs plus pratiques. Par exemple, si vous êtes sûr que le caractère « : » n'apparaît jamais dans vos données, vous pouvez l'utiliser comme séparateur ou sous-diviseur.

Organisons la boucle ligne par ligne (ligne 29).

Pour chaque ligne, nous calculons la hauteur. En parallèle, on commence à préparer une ligne à enregistrer dans un fichier dans la variable l (ligne 30 du listing).

Dans la boucle (ligne du listing 31) à travers les cellules de la ligne du tableau enregistrée, nous ajoutons à la ligne l toutes les informations qui nous intéressent sur les cellules, en lui fournissant des séparateurs.

Quelles propriétés cellulaires préservons-nous ?

Tout d’abord, le texte de la cellule. Veuillez noter que nous utilisons la propriété.Text et non la propriété.Value. Ce n'est pas une coïncidence. La propriété.Value renvoie le vrai contenu de la cellule, la propriété.Text renvoie le texte affiché sur le moniteur et imprimé. Ces deux valeurs peuvent ne pas correspondre (et ne correspondent généralement pas) car les valeurs sont affichées selon le format de cellule spécifié (par exemple, les nombres sont affichés avec un nombre spécifié de décimales).

La propriété MergeCells indique si une cellule fait partie d'un groupe de cellules fusionnées.

La propriété.Font.Bold reflète la gras du texte dans la cellule.

La propriété.Font.Strikethrough indique si le texte a été conçu en barré.

Pour notre exemple, nous n’avons probablement besoin de rien d’autre. Cependant, je ne peux m'empêcher de noter un certain nombre de propriétés utiles qui peuvent vous être utiles. Les noms de ces propriétés sont assez éloquents, et je ne les commenterai pas, je me limiterai à énumérer :

  • .Police.Nom
  • .Font.FontStyle
  • .Police.Taille
  • .Police.Souligné
  • .Font.ColorIndex
  • .Police.Italique
  • .Alignement horizontal
  • .Alignement vertical
  • .IndiceCouleur
  • .Modèle

Notez que toutes les propriétés sont explicitement converties en type chaîne par la fonction CStr (lignes 33 à 36). Il s'agit d'une procédure très utile qui vous évitera à jamais le casse-tête des conversions de types.

Une mise en garde importante doit être faite ici. Le fait est que la fonction CStr n'est pas capable de gérer des valeurs non définies. Si ceux-ci apparaissent dans vos documents, au lieu de CStr, vous pouvez utiliser votre propre fonction pour convertir les valeurs au format texte. Par exemple, safeCStr :

1 : Fonction safeCStr(p As Variant) As String
2 : Si IsNull(p) Alors safeCStr = "" Sinon safeCStr = CStr(p)
3 : Fin de la fonction

Je dois préciser que je n'ai moi-même jamais rencontré de telles situations, mais le consultant scientifique et technique du magazine a facilement trouvé sur Internet une grille de prix dans laquelle la propriété .Font.Bold n'était pas définie dans certaines cellules. Je pense que de tels documents peuvent provenir de l'exportation de données à partir d'autres applications. Par exemple, les produits 1C permettent l'exportation de données vers Excel. En un mot, une telle situation est possible. – Note de l'auteur.

Ainsi, vous sélectionnez la zone à enregistrer (dans notre exemple, ce sont les trois premières colonnes du tableau, lignes 4 à 21), cliquez sur le bouton que vous avez créé, sélectionnez un nom de fichier et le fichier est enregistré. Que faire ensuite ?

Créer une page HTML à partir de données exportées

Vous pouvez faire ce que vous voulez avec ce fichier, car son format nous est parfaitement connu (c'est bien de le savoir). Je vais donner un exemple de génération d'une page HTML.

Comme je l'ai dit, je propose un script Perl :

1 : #!/usr/bin/perl -w

3 : #utiliser strict ;

5 : # mon ($TRUE, $FALSE)=("True", "False");

6 : mon ($TRUE, $FALSE)=("Vrai", "Faux");

8 : sous-numéro (

9 : mon $t=shift ;

10 : $t=~s|,(\d+)|, $1|;

11 : renvoie $t ;

12: }

14 : sous-qtstring (

15 : mon $t=shift ;

16 : $t=~s/\&/\&/g;

17 : $t=~s/\"/\"/g;

18 : $t=~s/\>/\>/g ;

19 : $t=~s/\

20 : renvoie $t ;

21: }

23 : imprimer<<"TEXT";

24:

25:

26: liste de prix d'une certaine entreprise

27:

32:

33:

34:

35:

36:

37:

38:

39:

40:

41:

42:

43:

44:

45:

46:

47:

48:

49:

50 : TEXTE

52 : pendant que (<>) {

53 : s/[\x0A\x0D]+$//;

54 : mon @f=split /\x09/;

55 : mon $lh=shift @f ;

56 : mon ($name, $usd, $rub)=map() @f;

57 : si ($lh) (

58 : if ($name->eq $TRUE) ( # en-tête de section de processus

59 : imprimer "

\n";

62: ) else ( # traite la chaîne normale

63 : imprimer<<"TEXT" .

64:

65 : onMouseOver="this.className="al";"

66 : onMouseOut="this.className = "";">

\n \n \n";

80: }

81 : imprimer<<"TEXT";

82:

83:

84 : TEXTE

85 : ) sinon (

86 : avertir "ligne cachée : ".$name->."\n" ;

87: }

88: }

90 : imprimer<<"TEXT";

91:

liste de prix d'une certaine entreprise
nom du produit prix
c.u. frotter.
" .

60 : $nom-> .

61: "

67 : TEXTE

68 : ($nom->eq $TRUE?" ":"") .

69 : qtstring($nom->) .

70 : ($nom->eq $TRUE?"":"") .

71 : qq|

| .

72 : ($usd->eq 

$VRAI ?" ":"") .

73 : qtnum($usd->) .

74 : ($usd->eq $TRUE ?"":"") .

75:qq|

| .

76 : ($rub->eq 

$VRAI ?" ":"") .

77 : qtnum($rub->) .

78 : ($rub->eq $TRUE ?"":"") .

79: "

92:

93:

94 : TEXTE

Le script prend l'entrée d'un fichier spécifié comme paramètre de ligne de commande ou d'une entrée standard et génère du code HTML vers la sortie standard. Autrement dit, vous pouvez l'exécuter comme ceci :

perl fichier2html.pl fichier.txt >fichier.html

ou par exemple comme ceci :

fichier chat.txt | perl fichier2html.pl >fichier.html

Voyons comment fonctionne ce script (je suppose que le lecteur connaît quelque peu Perl).

La première ligne est la ligne magique standard de tout script UNIX. Les utilisateurs Windows peuvent l'ignorer. La troisième ligne contient l'instruction use stricte commentée. Cela ne vous sera utile que pour le débogage.

Aux lignes 5 et 6, nous définirons les variables $TRUE et $FALSE, qui contiendront les valeurs vraies et fausses produites par Excel. Le fait est que le russe Excel utilise des mots russes, le européen Excel utilise des mots anglais. Commentez la ligne qui vous convient et commentez celle en trop.

La procédure qtnum (lignes 8 à 12) ajoute des balises à l'entrée numérique, transformant "3,14" en "3, 14" Autrement dit, les centimes et les centimes seront affichés dans une police plus petite. Il s’agit d’une mesure purement cosmétique.

La procédure qtstring (lignes 13 à 21) quota les caractères « dangereux » : & (et), « (guillemet double),< (больше), >(moins). Comme vous le comprenez, il s'agit d'une mesure obligatoire.

Les lignes 23 à 50 impriment l'en-tête du document HTML.

DANS boucle while(lignes 52 à 88), nous lisons le fichier d'entrée ligne par ligne, le convertissons en un document HTML et le sortons sur la sortie standard.

À la ligne 53, le ou les caractères de fin de ligne sont coupés de la ligne de lecture suivante. Je n'utilise pas les fonctions standard Perl chop et chomp car le fichier en cours de traitement est créé sous Windows et le gestionnaire (notre script Perl) peut s'exécuter sous UNIX. Le fichier peut être transmis de manières très exotiques. Par exemple, beaucoup voudront probablement modifier légèrement mon code et le transformer en une application CGI pour administrer leur propre serveur. Par conséquent, je ne m'appuie pas sur les fonctions standard, mais déclare explicitement que je dois supprimer tous les caractères \x0A et \x0D à la fin de la ligne.

Le premier champ, la hauteur de ligne, est stocké dans la variable $lh (ligne 55). Tous les autres champs sont divisés en sous-champs. En conséquence, les variables $name, $usd, $rub se voient attribuer des pointeurs vers des tableaux contenant toutes les informations nécessaires sur le contenu et le formatage de la cellule correspondante. $name – cellule avec le nom du produit, $usd – cellule avec le prix en dollars, $rub – cellule avec le prix en roubles. Cela se fait avec une seule ligne 56.

Si la hauteur de la ligne n'est pas nulle, alors nous exécutons le bloc des lignes 58 à 84. Sinon, nous émettons un avertissement à stderr indiquant qu'une ligne cachée a été détectée et ignorée (ligne 86).

Le traitement des lignes du tableau peut sembler compliqué à première vue.

Tout d'abord, on découvre à quoi on a affaire : à la ligne 58, on vérifie la véracité de la propriété .MergeCells de la cellule avec le nom du produit. Si cette cellule est fusionnée, alors c'est un en-tête de section, puis le code qui génère l'en-tête est exécuté (lignes 59 à 61).

S'il s'avère que nous avons affaire à une chaîne normale, alors le bloc else est exécuté (lignes 63 à 79). Ici, une ligne du tableau HTML est formée dans laquelle des éléments de formatage supplémentaires sont insérés (pour les lignes du tableau où cela est nécessaire).

Veuillez noter que nous avons intégré une astuce DHTML de base dans notre document. Dans le tableau, la ligne sur laquelle se trouve le pointeur de la souris est toujours mise en évidence. Cela rend le tableau plus facile à lire. Convenez qu'il est difficile d'obtenir un tel effet en utilisant Excel (en enregistrant le document sous forme de page Web).

Aux lignes 90 à 94, nous imprimons les balises de fin du document. Veuillez noter qu'il doit y avoir une ligne vide à la fin du fichier programme. Sinon, le dernier mot (« TEXTE ») (ligne 94) ne sera pas analysé correctement par l'interpréteur Perl.

Voir l'image (page 82) pour la sortie.

D'accord, il y avait de quoi se battre !

INSECTES. Que pouvez-vous ajouter d'autre ?

Je suis convaincu que même si mes exemples sont pleinement fonctionnels, peu de personnes les utiliseront sans la moindre modification. Je voudrais ajouter quelques réflexions sur ce qui peut être amélioré dans ces scripts, afin qu'en les modifiant, vous n'effectuiez pas de travail inutile, mais que vous fassiez d'une pierre autant d'oiseaux que possible.

Scripté en Visual Basic

Ici, vous devrez probablement modifier l'ensemble des paramètres de cellule enregistrés. Je fournis une liste des plus utiles dans la discussion de ce scénario. Si vous avez besoin de quelque chose d'exotique, reportez-vous à la documentation Microsoft, propriétés de l'objet Range.

Beaucoup considéreront probablement comme un défaut le fait que la macro remplace certainement les fichiers existants (si vous spécifiez de sauvegarder fichier existant). Ceci, comme vous le comprenez, est facile à résoudre.

Probablement, pour les documents réels, il ne sera pas difficile de formuler les conditions dans lesquelles la macro elle-même déterminera la zone de la liste de prix (ou autre document) à enregistrer. Ce processus peut alors être automatisé. Ma solution (enregistrer la zone sélectionnée) est plus universelle que pratique.

Enfin, le lecteur peut à juste titre se demander pourquoi une macro pour Excel enregistre les lignes cachées, puisqu'elles peuvent être éliminées dès l'exportation ? Je tire mon chapeau à l'attention du lecteur (espérant secrètement un geste réciproque envers ma perspicacité). Il n'est vraiment pas nécessaire de sauvegarder les lignes masquées, j'ai juste l'habitude de tout sauvegarder. Des raisons ? Peut-être que des lignes cachées seront encore nécessaires. Ou vous voudrez peut-être savoir exactement quelles lignes ont été ignorées (mon script Perl, comme vous vous en souviendrez peut-être, rapporte chaque ligne cachée). De plus, les informations sur la hauteur de ligne peuvent être un critère d'identification des en-têtes... Bien que, bien sûr, vous puissiez légèrement modifier le code VB et ne pas enregistrer les lignes cachées.

Script Perl

Bien sûr, vous modifierez très probablement l’intégralité du code HTML (qui constitue la majeure partie du script) de manière significative. Bien sûr, vous devrez changer le nombre de colonnes, l'en-tête, beaucoup supprimeront mes lignes de séparation vides du code HTML, ajouteront des tableaux imbriqués, modifieront les fonctions DHTML, ajouteront des tableaux CSS... Mais ce n'est pas le plus important ou changement fondamental.

Très probablement, vous devrez « apprendre » à ce script à diviser des documents volumineux en sections et à enregistrer ces sections dans différents fichiers, car la liste de prix d'une entreprise très moyenne au format HTML peut atteindre des centaines de kilo-octets. Tous les navigateurs Web n'attendront pas la fin du téléchargement d'un tel document. Vous souhaiterez peut-être ajouter un tri (si les articles de la liste de prix imprimée et de la liste de prix Web doivent être dans un ordre différent).

Sans aucun doute, la fonction de comparaison de la liste de prix actuelle avec la précédente sera utile, car elle ajoutera des informations sur les mises à jour et la dynamique des prix.

Je conseillerais d'organiser de telles procédures (non directement liées à la mise en page HTML) sous la forme de programmes ou de modules séparés. D'ailleurs, une partie du travail de mise en page HTML peut être confiée au mécanisme SSI, et laisser le script collecter le document SHTML. Un ensemble d’outils simples est toujours plus pratique, flexible et gérable qu’un ensemble d’outils universels. Éloignez-vous du râteau où marchent les créateurs du téléphone à micro-ondes et de la télévision avec brosse à dents.

La liste des conseils et des suggestions peut être continuée à l'infini, mais je pense que j'ai déjà éveillé votre imagination et que vous pourrez continuer à vous débrouiller sans moi. Adapter l’exemple donné ici à vos conditions spécifiques peut nécessiter plusieurs heures de travail. Mais vous serez alors généreusement récompensé, car toutes les mises à jour ultérieures des informations sur votre serveur Web se feront en quelques touches du clavier et de la souris !


Besoin de convertir la table avec Extension HTML aux formats Excel peut se produire dans divers cas. Vous devrez peut-être convertir les données de pages Web provenant d'Internet ou des fichiers HTML utilisés localement à d'autres fins. programmes spéciaux. Très souvent, la conversion s'effectue pendant le transport. Autrement dit, ils convertissent d'abord le tableau HTML en XLS ou XLSX, puis le traitent ou le modifient, puis le reconvertissent en un fichier avec la même extension pour remplir sa fonction d'origine. Cela est dû au fait qu'il est beaucoup plus facile de travailler avec des tableaux dans Excel. Voyons comment convertir un tableau du format HTML vers Excel.

Le format HTML est un langage balisage hypertexte. Les objets portant cette extension sont le plus souvent utilisés sur Internet, sous forme de pages Web statiques. Mais ils peuvent souvent être utilisés pour des besoins locaux, par exemple comme documents d'aide pour divers programmes.

Si la question se pose de convertir des données du HTML vers les formats Excel, à savoir XLS, XLSX, XLSB ou XLSM, alors un utilisateur inexpérimenté peut se prendre la tête. Mais en réalité, il n'y a rien de terrible ici. La conversion dans les versions modernes d'Excel à l'aide des outils intégrés au programme est assez simple et, dans la plupart des cas, relativement correcte. De plus, on peut dire que le processus lui-même est intuitif. Cependant, dans les cas difficiles, vous pouvez utiliser utilitaires tiers. Examinons les différentes options pour convertir du HTML en Excel.

Méthode 1 : utilisation de programmes tiers

Concentrons-nous immédiatement sur l'utilisation programmes tiers pour convertir des fichiers du format HTML vers Excel. Avantages cette possibilité réside dans le fait que des utilitaires spécialisés sont capables de convertir même des objets très complexes. L’inconvénient est que la grande majorité d’entre eux sont rémunérés. De plus, sur à l'heure actuelle Presque toutes les options décentes sont en anglais sans russification. Regardons l'algorithme pour travailler dans l'un des plus programmes pratiques pour effectuer la direction de conversion ci-dessus - Abex HTML to Excel Converter.

  1. Une fois le programme d'installation du programme Abex HTML to Excel Converter téléchargé, lancez-le en exécutant double-cliquez bouton gauche de la souris. La fenêtre de bienvenue du programme d'installation s'ouvre. Cliquez sur le bouton "Suivant" ("Suivant").
  2. Suite à cela, une fenêtre avec un contrat de licence s'ouvre. Pour l'accepter, vous devez mettre l'interrupteur en position "J'accepte l'accord" et cliquez sur le bouton "Suivant".
  3. Après cela, une fenêtre s'ouvre indiquant où exactement le programme sera installé. Bien entendu, vous pouvez modifier le répertoire si vous le souhaitez, mais il n'est pas recommandé de le faire sauf en cas d'absolue nécessité. Alors appuyez simplement sur le bouton "Suivant".
  4. La fenêtre suivante indique quel sera le nom du programme, affiché dans le menu Démarrer. Ici aussi, vous pouvez simplement cliquer sur le bouton « Suivant ».
  5. Dans la fenêtre suivante, il vous est demandé d'installer l'icône de l'utilitaire sur le bureau (activée par défaut) et sur le panneau en cochant les cases. lancement rapide. Définissez ces paramètres selon vos préférences et cliquez sur le bouton "Suivant".
  6. Après cela, une fenêtre s'ouvre, qui résume toutes les informations sur tous les paramètres d'installation du programme que l'utilisateur a définis précédemment. Si l'utilisateur n'est pas satisfait de quelque chose, il peut cliquer sur le bouton "Dos" et modifiez les paramètres en conséquence. S'il est d'accord avec tout, alors pour démarrer l'installation, vous devez cliquer sur le bouton "Installer".
  7. La procédure d'installation de l'utilitaire est en cours.
  8. Une fois terminé, une fenêtre s'ouvre dans laquelle cela est signalé. Si l'utilisateur souhaite démarrer immédiatement le programme automatiquement, il doit alors s'assurer qu'à côté du paramètre "Lancer le convertisseur Abex HTML vers Excel" la case a été cochée. Sinon, vous devez le supprimer. Pour quitter la fenêtre d'installation, cliquez sur le bouton "Finition".
  9. Il est important de savoir qu'avant de lancer l'utilitaire Launch Abex HTML to Excel Converter, peu importe la manière dont cela est fait, manuellement ou immédiatement après l'installation de l'application, vous devez arrêter et fermer tous les programmes du package. Microsoft Office. Si vous ne le faites pas, lorsque vous essayez d'ouvrir Abex HTML to Excel Converter, une fenêtre s'ouvrira dans laquelle vous serez informé de la nécessité d'effectuer cette procédure. Pour commencer à travailler avec l'utilitaire, vous devez cliquer sur le bouton dans cette fenêtre "Oui". Si en même temps documents de bureau ouverts, le travail qu'ils contiennent sera interrompu de force et toutes les données non enregistrées seront perdues.
  10. La fenêtre d'inscription se lancera alors. Si vous avez acheté une clé d'enregistrement, alors dans les champs appropriés, vous devez saisir son numéro et votre nom (un alias est possible), puis cliquer sur le bouton "Registre". Si vous n'avez pas encore acheté de clé et souhaitez l'essayer version réduite application, puis dans ce cas il suffit de cliquer sur le bouton "Rappelle-moi plus tard".
  11. Après avoir terminé les étapes ci-dessus, la fenêtre du programme Abex HTML to Excel Converter s'ouvre directement. Pour ajouter un fichier au format HTML à convertir, cliquez sur le bouton "Ajouter des fichiers".
  12. Après cela, la fenêtre d'ajout de fichier s'ouvre. Dans celui-ci, vous devez accéder à la catégorie où se trouvent les objets destinés à la conversion. Ensuite, vous devez les mettre en évidence. Avantage cette méthode L'avantage de la conversion standard HTML vers Excel est que vous pouvez sélectionner et convertir plusieurs objets à la fois. Une fois les fichiers sélectionnés, cliquez sur le bouton "Ouvrir".
  13. Les objets sélectionnés seront affichés dans la fenêtre principale de l'utilitaire. Après cela, cliquez sur la marge inférieure gauche pour sélectionner l'un des trois formats Excel dans lesquels vous pouvez convertir le fichier :
    • XLS (par défaut) ;
    • XLSX ;
    • XLSM (avec prise en charge des macros).

    Nous faisons un choix.

  14. Après cela, allez dans le bloc des paramètres "Réglage de sortie" ("Paramètres de sortie"). Ici, vous devez indiquer exactement où les objets convertis seront enregistrés. Si vous placez le commutateur en position "Enregistrer le(s) fichier(s) cible(s) dans le dossier source", alors le tableau sera enregistré dans le même répertoire où se trouve la source au format HTML. Si vous souhaitez enregistrer des fichiers dans dossier séparé, alors pour ce faire, vous devez déplacer l'interrupteur sur la position "Personnaliser". Dans ce cas, par défaut les objets seront enregistrés dans le dossier "Sortir", qui à son tour se trouve dans le répertoire racine du disque C.

    Si vous souhaitez préciser l'emplacement où l'objet sera enregistré, vous devez cliquer sur le bouton situé à droite du champ d'adresse.

  15. Après cela, une fenêtre s'ouvre avec un aperçu des dossiers. Vous devez vous déplacer vers le répertoire que vous souhaitez désigner comme emplacement de sauvegarde. Ensuite, vous devriez cliquer sur le bouton "D'ACCORD".
  16. Après cela, vous pouvez passer directement à la procédure de conversion. Pour ce faire, cliquez sur le bouton sur le panneau supérieur "Convertir".
  17. Ensuite, la procédure de conversion sera effectuée. Une fois terminé, une petite fenêtre s'ouvrira pour vous en informer, et se lancera également automatiquement Explorateur Windows dans le répertoire où se trouvent les fichiers Excel convertis. Vous pouvez désormais effectuer d'autres manipulations avec eux.

Mais vous devez garder à l'esprit que si vous utilisez un logiciel gratuit version d'essai utilitaire, alors seule une partie du document sera convertie.

Méthode 2 : convertir à l’aide des outils Excel standard

Vous pouvez également convertir un fichier HTML vers n'importe quel format Excel assez facilement à l'aide des outils standard de cette application.


Il existe également une autre option pour accéder à la fenêtre de sauvegarde du document.


Comme vous pouvez le constater, la conversion d'un fichier HTML vers l'un des formats Excel est assez simple en utilisant outils standards de ce programme. Mais pour les utilisateurs qui souhaitent recevoir fonctionnalités supplémentaires, par exemple, pour effectuer une conversion massive d'objets dans la direction spécifiée, nous pouvons vous recommander d'acheter l'un des utilitaires payants spécialisés.

Par exemple, prenons un tableau Excel composé de 4 colonnes et 12 lignes.
Colonne A - numérotation des éléments par ordre croissant des éléments de campagne
Colonne B - nombre d'articles
Colonne C - prix d'un article
Colonne D - la somme du coût des articles sur une ligne comme le produit du prix de l'article et de leur quantité
Colonne D cellule D12 - somme du coût de tous les articles

Il va sans dire que le tableau lui-même est sous la forme exceller déposer ne peut pas être publié dans les documents du site pour de nombreuses raisons. Pour le placer et le publier sous la forme d'une représentation textuelle de données, vous avez besoin conversion en HTML format compatible.

Nous ajoutons d'abord avant la table encore une ligne, mis en évidence cadre rouge .
Ensuite, avant chaque colonne du tableau, nous ajoutons encore une colonne, ajoutez 4 colonnes supplémentaires, mises en surbrillance cadres verts .

En conséquence, nous obtenons un tableau composé de 8 colonnes et 13 lignes.

Vers la cellule A1écrire sous forme de texte HTMLétiquette de table


Pour définir une plage de cellules A2-A11 avant chaque cellule d'une colonne B nous écrivons les premiers sous forme de texte HTML balises de ligne et de cellule
Vers la cellule I14écrire le texte de clôture sous forme de texte HTMLétiquette de table

Pour définir une plage de cellules C2-C11 , E2-E11 , G2-G11 avant chaque cellule de colonne D , F Et Hécrire la clôture et l'ouverture sous forme de texte HTML balises de cellule

Pour définir une plage de cellules I2-I13 après chaque cellule de la colonne H nous écrivons les derniers sous forme de texte HTML balises de cellule et de ligne

À côté des cellules A12 Et A13écrire l'ouverture sous forme de texte HTML balise de ligne et ouverture HTML balise de cellule avec attribut colpan combiner en lignes 12 Et 13 colonnes B , D Et F dans une cellule

En conséquence, nous obtenons un tableau rempli à la fois de données initiales dans exceller formater et Balises HTML sous forme de texte.

Suivant dans Éditeur Excel, sélectionner le tableau dans la plage A1-I13, dans le menu du programme sélectionnez la commande "Enregistrer sous" et enregistrez le fragment sélectionné sous fichier texte(par exemple - tabltxt.txt), l'encodage n'a pas d'importance, vous pouvez l'enregistrer comme encodé UTF-8 et en encodage MS-DOS. Excel affichera une fenêtre d'avertissement :

Appuyez sur la touche "D'ACCORD" et Excel affichera à nouveau une fenêtre d'avertissement :

Appuyez sur la touche "OUI" et le fragment sélectionné sera enregistré sous forme de fichier texte tabltxt.txt

Ensuite, nous transférons la suite du travail de conversion vers l'éditeur HTML, en principe, tout le reste peut être fait de manière simple ; éditeur de texte, mais une option avec un éditeur HTML plus préférable.

Ouverture du fichier tabltxt.txt dans n'importe quel éditeur de texte, sélectionnez tout le contenu sous forme de texte et collez-le dans HTMLéditeur dans Mode HTML. On obtient l'initiale suivante Texte HTML tableaux. Vous pouvez également sélectionner un fichier enregistré dans Excel. La seule différence sera qu'en fonction de l'encodage du fichier enregistré, "artefacts" sous forme de caractères supplémentaires comme on peut le voir sur la capture d'écran dans les cellules ( " " ).

Ensuite, nous supprimons tout "artefacts" s'il est présent, et tous les espaces. Nous écrivons également Style CSS pour les cellules du tableau : td (remplissage : 1px 12px ; alignement du texte : centre ;) En conséquence, nous obtenons le texte HTML original du tableau au format HTML. (la capture d'écran est affichée telle quelle sans formatage HTML structurel tel qu'elle apparaîtrait dans un éditeur de texte). Sous cette forme source Le tableau peut être utilisé comme tableau de données HTML à publier dans le document, car il s'agit d'un format purement HTML.

Après avoir enregistré le tableau en tant que fichier HTML et l'avoir visualisé dans le navigateur, nous obtiendrons l'affichage suivant du tableau converti du format Excel au format HTML.

Le sens de toutes les actions ci-dessus se résume à une seule chose :

1 . Formulaire avant chaque ligne tableaux Excel, la ligne HTML et le début de la cellule HTML.
2 . Formez des cellules HTML entre les colonnes d'un tableau Excel, la fin de l'une et le début de l'autre.
3 . Formulaire après chaque ligne du tableau Excel, terminant les cellules et les lignes HTML.
4 . Formez le début et la fin du tableau Excel, le début et la fin du tableau HTML sous forme de balise de tableau.

Il va sans dire que pour un affichage plus présentable des données du tableau, il est nécessaire d'écrire des classes CSS dans Balises HTML lignes et cellules du tableau. Par exemple, avec des attributs de retrait, de couleur et de style de police, de bordures et d'autres motifs. Mais il s'agit d'un sujet distinct qui n'est pas abordé dans ce document.....