Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 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 | | Calendrier |
|
|
| Créer une feuille de calcul Excel, sans Excel | |
| | Auteur | Message |
---|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Créer une feuille de calcul Excel, sans Excel Ven 26 Fév 2010 - 15:05 | |
| Spécialement à l'attention de jjn4. J'ai trouvé çette idée dans un autre forum et je l'ai adaptée à Panoramic. Le fichier créé est du style Html mais sera bien interprété par Excel. (je n'ai pas Excel, mais ça marche très bien sous Open Office). Voici: - Code:
-
' Excel.bas création d'une feuille de calcul Excel DIM fe$, q$, x, colwidth$, colvalue, rowvalue
fe$ = "Z:\Calcul.xls": ' <------- à adapter ! (fichier résultat créé) ------- q$ = CHR$(34) colwidth$ = "130": ' largeur des colonnes
FILE_OPEN_WRITE 1, fe$
FILE_WRITELN 1,"<HTML>" FILE_WRITELN 1,"<HEAD>": ' header ' specifier une application ms-excel FILE_WRITELN 1,"<META HTTP-EQUIV="+q$+"Content-Type"+q$+" CONTENT="+q$+"application/vnd.ms-excel"+q$+">"
' créer un style FILE_WRITELN 1,"<style>" ' choisir un nom pour le style FILE_WRITELN 1,".style1" ' fixer le formatage des nombres à 0 décimale FILE_WRITELN 1,"{mso-number-format:0;" ' fixer la couleur bleue pour le texte FILE_WRITELN 1,"color:blue;" ' centrer le texte FILE_WRITELN 1,"text-align:center;}" ' terminer le style FILE_WRITELN 1,"</style>"
FILE_WRITELN 1,"</HEAD>": ' terminer le header
FILE_WRITELN 1,"<BODY>": ' début du corps ' créer un tableau avec bordure style 1 FILE_WRITELN 1,"<TABLE cellpadding=1 border=1>"
FILE_WRITELN 1,"<TR>": ' sélectionner la rangée du tableau ' Créer le header du tableau avec la largeur choisie et le texte gras FOR x = 1 TO 4 FILE_WRITELN 1, "<TH width="+colwidth$+"><B>Column"+STR$(x)+"</B></TH>" NEXT x FILE_WRITELN 1, a$ FILE_WRITELN 1,"</TR>"
FOR rowvalue = 1 TO 4 ' démarrer une nouvelle rangée FILE_WRITELN 1,"<TR>" ' remplir rangées et colonnes avec les datas, en utilisant le style1 FOR colvalue = 1 TO 4 FILE_WRITELN 1,"<TD class=style1>"+STR$(rowvalue*colvalue*1000)+"</TD>" NEXT colvalue ' terminer la rangée FILE_WRITELN 1,"</TR>" NEXT rowvalue
FILE_WRITELN 1,"</TABLE>": ' fin de table FILE_WRITELN 1,"</BODY>": ' fin du corps FILE_WRITELN 1,"</HTML>": ' fin du html FILE_CLOSE 1 END | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: ++++++++++++++++++ Ven 26 Fév 2010 - 17:21 | |
| Assez fabuleux ! Cela marche. A la première ligne apparaît : a$ en dimensionnant a$ et en lui donnant un contenu, le contenu apparaît alors sur la première ligne. Ensuite, apparaissent 4 colonnes notées Column1 à Column4 puis 16 cases de chiffres en 4 rangées et 4 colonnes, les chiffres étant en bleu. Y a-t-il d'autres formes de style qu'on peut programmer comme ça, en particulier la couleur de fond de la cellule ? En tout cas, merci de m'envoyer des programmes spécialement à mon attention ! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Créer une feuille de calcul Excel, sans Excel Ven 26 Fév 2010 - 17:27 | |
| Ca j'en sais rien du tout, mais c'est fort probable, il faut essayer (peut-être en comparant avec une véritable feuille Excel qui ferait la même chose ? je ne connais pas du tout le format excel). Et si je te le dédie c'est parce que tu sembles être le seul ici à t'intéresser à Excel ! et puis, allez, par affection on obtient ça sous open office: (le a$ en haut est intempestif, c'est la ligne File_WriteLn 1, a$ (ligne 40) que j'ai oublié de supprimer après essais | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Ven 26 Fév 2010 - 17:59 | |
| Oui, oui, lire en filebin une feuille créée par Excel et la comparer avec ce que tu m'as montré, ça, c'est une idée, je pourrai peut-être découvrir comment excel code la couleur de fond. Je mets ça de côté et je te remercie bien pour ton affection Je le regarderai dès que possible, pour l'instant, il faut que je finisse un programme que j'avais promis à quelqu'un avant Noël... | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Créer une feuille de calcul Excel, sans Excel Ven 26 Fév 2010 - 18:12 | |
| Voilà encore quelqu'un qui ne va plus croire au père Noël ! J'édite: Pour la couleur de fond des cellules, il y a certainement moyen de définir un style particulier pour ces cellules et de le décrire en début de programme, comme pour le style1. Mais je ne connais pas la syntaxe. Par contre, le format Html ici présent étant correctement interprété par Excel, on peut utiliser le formatage Html (que tu dois certainement maîtriser parfaitement), et ça c'est facile à tester. Par exemple, dans la cellule choisie, au lieu de générer comme ci-dessus: <TD class=style1>6000</TD>tu mets: <TD class=style1 bgcolor=cyan>6000</TD>et là ta cellule sera colorée en cyan. C'est sans doute moins élégant que la description d'un style, mais ça marche. | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Ven 26 Fév 2010 - 22:12 | |
| Ah non, je ne maîtrise pas du tout le formatage html, mais merci quand même du conseil ! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Créer une feuille de calcul Excel, sans Excel Ven 26 Fév 2010 - 22:17 | |
| C'est pourtant bien intéressant, et assez simple si on se contente des balises de base, on arrive à faire de belles présentations, des tableaux notamment, qu'on peut imprimer avec un explorateur internet. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Créer une feuille de calcul Excel, sans Excel Sam 27 Fév 2010 - 11:07 | |
| @jjn4, il est facile de colorer les cellules en utilisant les balises html: Je ne donne pas les détails pour ne pas embêter tout le monde, mais quand tu en voudras, n'hésite pas ! | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: ++++++ Sam 27 Fév 2010 - 14:19 | |
| Mais moi, je veux bien être embêté. C'est quoi, ces balises ? | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Créer une feuille de calcul Excel, sans Excel Sam 27 Fév 2010 - 15:10 | |
| Je savais bien que j'arriverais à éveiller ta curiosité ! Du coup, je redonne le code qui aboutit à l'illustration ci-dessus: - Code:
-
' Excel.bas création d'une feuille de calcul Excel DIM fe$, q$, x, colwidth$, colvalue, rowvalue DIM a$, c$, cf$, cr2$, cc3$, cm$, sof$
fe$ = "Z:\Calcul.xls" sof$ = "C:\Progra~1\OpenOf~1.org\program\soffice.exe -calc " q$ = CHR$(34) colwidth$ = "130": ' largeur des colonnes
FILE_OPEN_WRITE 1, fe$
FILE_WRITELN 1,"<HTML>" FILE_WRITELN 1,"<HEAD>": ' header ' specifier une application ms-excel FILE_WRITELN 1,"<META HTTP-EQUIV="+q$+"Content-Type"+q$+" CONTENT="+q$+"application/vnd.ms-excel"+q$+">"
' créer un style FILE_WRITELN 1,"<style>" ' choisir un nom pour le style FILE_WRITELN 1,".style1" ' fixer le formatage des nombres à 0 décimale FILE_WRITELN 1,"{mso-number-format:0;" ' fixer la couleur bleue pour le texte FILE_WRITELN 1,"color:blue;" ' centrer le texte FILE_WRITELN 1,"text-align:center;}" ' terminer le style FILE_WRITELN 1,"</style>"
FILE_WRITELN 1,"</HEAD>": ' terminer le header
FILE_WRITELN 1,"<BODY>": ' début du corps ' créer un tableau avec bordure style 1 FILE_WRITELN 1,"<TABLE cellpadding=1 border=1>"
FILE_WRITELN 1,"<TR>": ' sélectionner la rangée du tableau ' Créer le header du tableau avec la largeur choisie et le texte en gras FOR x = 1 TO 4 FILE_WRITELN 1, "<TH width="+colwidth$+" bgcolor=#A0FFA0><B>Colonne "+STR$(x)+"</B></TH>" NEXT x FILE_WRITELN 1,"</TR>"
' pour coloration du fond d'une cellule: balise bgcolor=couleur ' exemple: <TD class=style1 bgcolor=cyan>
cf$ = "#FFFFFF": cr2$ = "#A0A0FF": cc3$ = "#FFC0C0": cm$ = "#FFA0FF" FOR rowvalue = 1 TO 4 ' démarrer une nouvelle rangée FILE_WRITELN 1,"<TR>" ' remplir rangées et colonnes avec les datas, en utilisant le style1 FOR colvalue = 1 TO 4 c$ = cf$: ' couleur de fond de cellule if rowvalue = 2 then c$ = cr2$ if colvalue = 3 then c$ = cc3$: if rowvalue = 2 then c$ = cm$ a$ = "<TD class=style1" a$ = a$ + " bgcolor=" + c$ + ">" a$ = a$ + STR$(rowvalue*colvalue*1000) a$ = a$ + "</TD>" FILE_WRITELN 1,a$ NEXT colvalue ' terminer la rangée FILE_WRITELN 1,"</TR>" NEXT rowvalue
FILE_WRITELN 1,"</TABLE>": ' fin de table FILE_WRITELN 1,"</BODY>": ' fin du corps FILE_WRITELN 1,"</HTML>": ' fin du html FILE_CLOSE 1 PRINT "Terminé !" EXECUTE_WAIT sof$ + fe$ END J'ai rajouté à la fin l'appel du tableur de OpenOffice pour visualiser le résultat, et ça tu peux l'enlever, puisque tu as Excel. Ou remplacer par l'appel d'Excel pour visualiser les essais. PS les couleurs peuvent être exprimées soit sous forme hexadécimale (RGB), soit sous forme de noms convenus: white, blue, red etc etc (il y en a quelque chose comme 250). | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Dim 28 Fév 2010 - 20:23 | |
| @ JL35 Ca y est, j'ai fini le programme que j'avais promis pour Noël (mieux vaut tard que jamais) Je peux alors me pencher sur tes appels HTML avec balises. C'est très très intéressant, mais ce n'est pas simple ! C'est quoi, alors, par définition, les « balises » ? C'est les trucs qui sont entre < et > ? Bon, c'est plus l'heure, je verrai ça demain... | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Créer une feuille de calcul Excel, sans Excel Dim 28 Fév 2010 - 23:10 | |
| Je te répète que c'est très simple pour les balises élémentaires. Eh bien oui, les balises c'est bien ce qui figure entre "<" et ">". Ce sont des codes de formatage, interprétés au moment de l'affichage. Il y a en général une balise de début de format et une balise de fin. Par exemple <B>... texte...</B> tout ce qui sera entre les deux sera en caractères gras. Les balises doivent être imbriquées dans l'ordre: <B>...aaa...<I>...bbb...</I>...</B> et non pas <B>...aaa...<I>...</B>...</I> Structure élémentaire d'un fichier html: <HTML> ' type de fichier <HEAD> ' en-tête </HEAD> ' fin d'en-tête <BODY> ' corps du message </BODY> ' fin du message </HTML> ' fin de fichier Et tu peux tester ton message dans n'importe quel navigateur internet. Tu trouveras des centaines de tutoriaux html sur internet, je ne veux pas trop m'étendre ici, on est un peu hors sujet. Déjà là: http://fr.wikipedia.org/wiki/Hypertext_Markup_Language#Syntaxe_de_HTML | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Lun 1 Mar 2010 - 12:57 | |
| Très simple, très simple... par exemple : tu dis que <B> met en gras et </B> arrête le gras, mais dans le programme que tu as mis dans cette rubrique, (le premier au tout début) j'enlève le <B> et le </B> et ça reste toujours en gras, pas si simple, et la taille des lettres, et la hauteur des colonnes, on change ça comment ? Ah, tu as éveillé ma curiosité, maintenant j'ai plein de questions !
Dernière édition par jjn4 le Lun 1 Mar 2010 - 18:02, édité 1 fois | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Créer une feuille de calcul Excel, sans Excel Lun 1 Mar 2010 - 15:20 | |
| Pour le <B> et le </B> ôtés et que ce soit toujours en gras tu m'étonnes. Par contre, pour vérifier les modifs, du coup j'ai installé la dernière version de OpenOffice (3.2) et il ne veut plus lire ce format. Et Excel Viewer non plus, du coup je ne peux plus rien vérifier ! Il va falloir je je charge une version 'périmée' d'Excel pour voir (j'ai vu que ça existait sur Vetusware), mais pas sûr que ça marche. Pour le langage html, il y a plein de ressources sur le net. Il faut que je voie ça de plus près, je suis un peu débordé en ce moment (4 petits-enfants à la maison, c'est le souk). | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Re: Créer une feuille de calcul Excel, sans Excel Lun 1 Mar 2010 - 16:01 | |
| Pour ce qui est de la creation ca marche mais pour la lecture et l'écriture dans cette feuille une fois créée. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Créer une feuille de calcul Excel, sans Excel Lun 1 Mar 2010 - 17:03 | |
| Sous Excel ? mais je suis incapable de le vérifier... | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Lun 1 Mar 2010 - 18:15 | |
| Ca marche (sur Excel) : Après le programme de JL35, si on ecrit : - Code:
-
excel_start excel_file_open 1,fe$ excel_write "B7","Salut" print excel_read$("B6") ça marche, Salut apparaît sur la feuille excel au bon endroit et 8000 apparaît sur la form0 de panoramic. La seule chose, c'est que les cellules comme celle où s'écrit Salut manquent de bordure et sont toutes blanches. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Créer une feuille de calcul Excel, sans Excel Lun 1 Mar 2010 - 18:27 | |
| Pour la couleur, vois la deuxième version du programme ? pour le <B> </B>, effectivement ça ne change rien, mais ça doit être parce que c'est dans l'en-tête du tableau (<TH> </TH>) qui est systématiquement en gras. Essaie avec <I> </I> ou <U> </U> à la place de B et tu verras que ça marche. Pour les caractères il y a les balises FONT FACE, FONT SIZE, FONT COLOR. Pour la taille des cellules, on peut fusionner 2 ou plusieurs cellules soit horizontalement, soit verticalement. La balise <TH> </TH> renferme l'en-tête de chaque colonne du tableau. <TR> </TR> renferme une rangée de cellules, et <TD> </TD> renferment chaque cellule de cette rangée. Chacune de ces balises peut comporter des paramètres. Pour mettre en gras une partie de texte: - Code:
-
<TD class=style1 bgcolor=#FFFFFF><B>2000</B></TD> Pour modifier la taille du texte: balises <H1 à 6>, du plus grand au plus petit: - Code:
-
<TD class=style1 bgcolor=#FFFFFF><H2>4000</H2></TD> Pour changer la fonte: - Code:
-
<TD class=style1 bgcolor=#FFFFFF><FONT FACE="Mistral">16000</FONT></TD> les balises sont cumulables, mais toujours respecter l'ordre lifo (last in first out: dernière entrée première sortie) comme dans une pile. Avec ça jjn4 tu as déjà de quoi t'amuser. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Créer une feuille de calcul Excel, sans Excel Lun 1 Mar 2010 - 22:17 | |
| J'ai édité ci-dessus pour quelques infos supplémentaires. | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Ven 5 Mar 2010 - 18:56 | |
| J'ai essayé plusieurs trucs : - d'abord de lire en filebin des fichiers excel : (mission impossible, le fait de remplir une seule cellule modifie un nombre considérable de données dans le fichier) - de faire une sorte de programme prêt à utiliser pour créer des fichiers excel avec des programmes HTML écrits en panoramic : (ça, ça marche nettement mieux) mais en décortiquant les programmes que tu as publiés plus haut, je vois que la première ligne est fusionnée et je ne vois pas le mécanisme qui a fait ça, comment on fusionne des cellules en HTML ? Et puis, il y a un terme : cellpadding=1 si je change sa valeur, ça ne change rien, cela sert à quoi ce cellpadding ? Bon, je te fais travailler, mais c'est bon pour l'esprit... | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Créer une feuille de calcul Excel, sans Excel Ven 5 Mar 2010 - 20:38 | |
| Minute, j'arrive... 1) Cellpadding: je ne sais pas exactement: espacement entre cellules, ou plutôt espacement entre la donnée et le bord de la cellule. Essaie de modifier avec une plus grande valeur (c'est en pixels), par exemple cellpadding=20 ou 40, tu verras du changement. 2) Tu as raison, un fichier généré par Excel doit être inexploitable si on ne connaît pas le formatage, et vu les possibilités ça doit être inextricable. 3) Fusion de cellules: je ne vois pas que la 1ère ligne soit fusionnée ? Rappel: <TR> = début de rangée, <TD> = début de colonne (une cellule) - Fusion de cellules horizontales: COLSPAN=n (nb de cellules fusionnées H) exemple, un tableau de 4 colonnes avec les 3 premières colonnes (cellules) fusionnées: - Code:
-
<TR><TD COLSPAN=3>Titre sur 3 colonnes</TD><TD>dernière colonne<>TD></TR> rangée suivante: - Code:
-
<TR><TD>col 1</TD><TD>col 2</TD><TD>col 3</TD><TD>col 4</TD></TR> - Fusion de cellules verticales: ROWSPAN=n (nb de cellules fusionnées V) un tableau de 4 colonnes avec la dernière cellule fusionnée avec celle du dessous: - Code:
-
<TR><TD>col 1</TD><TD>col 2</TD><TD>col 3</TD><TD ROWSPAN=2>col 4</TD></TR> rangée suivante: - Code:
-
<TR><TD>col a</TD><TD>col b</TD><TD>col c</TD></TR> Tout ça est de l'html pur, tant mieux si c'est interprété par Excel ! des questions ? PS Je rappelle à tous ceux qui seraient intéressés par les fichiers en langage html (langage d'internet) fabriqués à partir de Panoramic qu'il est facile de visualiser le résultat, pour les tests, avec un explorateur web. Par exemple Internet Explorer, qui se trouve en général dans C:\Program Files\Internet Explorer\iexplore.exe, soit, sous Panoramic: - Code:
-
EXECUTE "C:\Progra~1\Intern~1\iexplore.exe Monfich.htm" END | |
| | | Contenu sponsorisé
| Sujet: Re: Créer une feuille de calcul Excel, sans Excel | |
| |
| | | | Créer une feuille de calcul Excel, sans Excel | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |