FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Compilateur FBPano
par jean_debord Aujourd'hui à 10:54

» demande pour recuperer un text speciale
par pascal10000 Hier à 22:04

» Casse-tête : Echanger les positions des cavaliers
par papydall Hier à 19:51

» KGF_dll - nouvelles versions
par Klaus Hier à 14:29

» Amélioration de la commande HINT
par papydall Mer 19 Juil 2017 - 3:30

» TEST SUR SHAPE
par papydall Mer 19 Juil 2017 - 1:17

» Un challenge à relever
par papydall Mar 18 Juil 2017 - 21:25

» Astuce : Indenter plusieurs lignes de code à la fois
par papydall Mar 18 Juil 2017 - 1:32

» Suggestion pour le forum
par papydall Lun 17 Juil 2017 - 20:28

» Truver les handles des onglets de Panoramic Editor
par Klaus Lun 17 Juil 2017 - 18:20

» Synedit_Editor - nouvelles versions
par Klaus Lun 17 Juil 2017 - 13:46

» Détermine si oui ou non un objet est PARENT d'un autre objet
par Klaus Dim 16 Juil 2017 - 11:58

» Une autre façon de terminer une application.
par papydall Dim 16 Juil 2017 - 3:53

» Déterminer le Handle de l’objet ayant le focus
par papydall Dim 16 Juil 2017 - 3:15

» Déterminer le HANDLE du Bureau
par papydall Dim 16 Juil 2017 - 1:59

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juillet 2017
LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930
31      
CalendrierCalendrier

Partagez | 
 

 2.05 du 14 Mars 2013: gestion de Excel !

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Klaus

avatar

Nombre de messages : 10062
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: 2.05 du 14 Mars 2013: gestion de Excel !   Jeu 14 Mar 2013 - 13:31

Nouvelle version:
KGF.dll V2.05 du 14 Mars 2013

Nouveautés: 20 fonctions pour gérer Excel !

Modules modifiés:
KGF.dll
KGF_SUB.bas
KGF.chm, KGF.doc, KGF.pdf


La doc est à jour ! D'autres fonctions pourront être rajoutées suivant les besoins (gestion des images, gestion des macros, ...).


Bon, je sais: tout le monde n'a pas Excel. C'est un produit MicroSoft qui n'est pas gratuit. Mais pour ceux qui l'ont, cela ouvre des horizons ! J'ai compris comment gérer Excel à partir de Delphi 6, et je rends ces fonctionnalités accessibles en Panoramic. Pour le moment, j'ai créé 20 fonctions:
Citation :
StartExcel, TerminateExcel, OpenExcelWorkBook, NewExcelWorkBook, CloseExcelWorkBook,
SaveExcelWorkBookAs, SaveExcelWorkBook,
ReadExcelCell, WriteExcelCellContent, WriteExcelCellFormula,
SelectExcelRange, CopyExcelSelection, PasteExcelSelection, SetExcelSelectionTextStyle,
SetExcelSelectionCellStyle,
SelectExcelWorkBookSheet, RenameExcelWorkBookSheet, RemoveExcelWorkBookSheet,
NewExcelWorkBookSheet, GetActualExcelStatus,

Toutes ces fonctions retournent 0 si elles se sont bien terminées, ou 1 en cas d'anomalie. Pour adresser les cellules, on utilise la notation Excel: B37 pour une cellule unique, F12:H17 pour un rectange, etc.

Voici leur format d'appel: (en appel direct KGF.dll ou en utilisant KGF_SUB.bas):
res% = dll_call1("StartExcel",visible%)
StartExcel(visible%)

res% = dll_call0("TerminateExcel")
TerminateExcel()

res% = dll_call1("OpenExcelWorkBook",adr(wb$))
OpenExcelWorkBook(wb$)

res% = dll_call0("NewExcelWorkBook")
NewExcelWorkBook()

res% = dll_call0("CloseExcelWorkBook")
CloseExcelWorkBook()

res% = dll_call1("SaveExcelWorkBookAs",adr(wb$))
SaveExcelWorkBookAs(wb$)

res% = dll_call0("SaveExcelWorkBook")
SaveExcelWorkBook()

res% = dll_call3("ReadExcelCell",adr(range$),adr(ReadExcelCellContent$),adr(ReadExcelCellformula$))
ReadExcelCell(range$)

res% = dll_call2("WriteExcelCellContent",adr(range$),adr(txt$))
WriteExcelCellContent(range$,txt$)

res% = dll_call2("WriteExcelCellFormula",adr(range$),adr(frm$))
WriteExcelCellFormula(range$,frm$)

res% = dll_call1("SelectExcelRange",adr(range$))
SelectExcelRange(range$)

res% = dll_call0("CopyExcelSelection")
CopyExcelSelection()

res% = dll_call1("PasteExcelSelection",adr(range$))
PasteExcelSelection(range$)

res% = dll_call6("SetExcelSelectionTextStyle",adr(police$),siz%,B%,I%,S%,col%)
SetExcelSelectionTextStyle(police$,siz%,B%,I%,S%)

res% = dll_call5("SetExcelSelectionCellStyle",ind%,typ%,poids%,lcol%,icol%)
SetExcelSelectionCellStyle(ind%,typ%,poids%,lcol%,icol%)

res% = dll_call1("SelectExcelWorkBookSheet",adr(sheet$))
SelectExcelWorkBookSheet(sheet$)

res% = dll_call1("NewExcelWorkBookSheet",adr(sheet$))
NewExcelWorkBookSheet(sheet$)

res% = dll_call2("RenameExcelWorkBookSheet",adr(sheet$),adr(sheet1$))
RenameExcelWorkBookSheet(sheet$,sheet1$)

res% = dll_call1("RemoveExcelWorkBookSheet",adr(sheet$))
RemoveExcelWorkBookSheet(sheet$)

res% = dll_call5("GetActualExcelStatus",adr(WB$),adr(SHT$),adr(RG$),adr(Lin%),adr(Col%))
GetActualExcelStatus(GetActualExcelStatus"()

Et voici un programme de démo:
Code:
' piloter_Excel.bas

label start, termin8
label open, new, close
label saveas, save
label rd
label content, formula
label sel, copy, paste
label textstyle
label cellstyle
label selectsheet, newsheet, renamesheet, removesheet
label status

dim wb$ : wb$ = "C:\temp\test.xls"
dim res%, range$, txt$, frm$, police$, siz%, B%, I%, S%, col%, ind%
dim k%, icol%, lcol%, typ%, poids%, sheet$, sheet1$, resultat$(1)
dim awb$, ash$, arg$, nr%, nc%
resultat$(0) = "Ok" : resultat$(1) = "Erreur"

width 0,1000 : height 0,800

button 1 : top 1,10 : left 1,10 : width 1,150
  on_click 1,start : caption 1,"StartExcel"
button 2 : top 2,10 : left 2,240 : width 2,150
  on_click 2,termin8 : caption 2,"TerminateExcel"
alpha 3 : top 3,10 : left 3,710 : caption 3,"Status:"
alpha 4 : top 4,10 : left 4,760 : caption 4,"Prêt"
  font_bold 4 : font_color 4,255,0,0
button 5 : top 5,10 : left 5,410 : width 5,150
  on_click 5,status : caption 5,"GetActualExcelStatus"

button 11 : top 11,40 : left 11,10 : width 11,150
  on_click 11,open : caption 11,"OpenExcelWorkBook"
button 12 : top 12,40 : left 12,240 : width 12,150
  on_click 12,new : caption 12,"NewExcelWorkBook"
button 13 : top 13,40 : left 13,410 : width 13,150
  on_click 13,close : caption 13,"CloseExcelWorkBook"

button 21 : top 21,70 : left 21,10 : width 21,150
  on_click 21,saveas : caption 21,"SaveExcelWorkBookAs"
button 22 : top 22,70 : left 22,240 : width 22,150
  on_click 22,save : caption 22,"SaveExcelWorkBook"

alpha 1001 : top 1001,100 : left 1001,10 : caption 1001,"Cellule:"
edit 1002 : top 1002,100 : left 1002,80 : width 1002,60 : text 1002,"A1"
button 31 : top 31,100 : left 31,240 : width 31,150
  on_click 31,rd : caption 31,"ReadExcelCell"
alpha 1003 : top 1003,100 : left 1003,410 : caption 1003,"Contenu:"
edit 1004 : top 1004,100 : left 1004,480 : width 1004,300
alpha 1005 : top 1005,130 : left 1005,410 : caption 1005,"Formule:"
edit 1006 : top 1006,130 : left 1006,480 : width 1006,300

alpha 1011 : top 1011,160 : left 1011,10 : caption 1011,"Cellule:"
edit 1012 : top 1012,160 : left 1012,80 : width 1012,60 : text 1012,"A1"
button 32 : top 32,160 : left 32,240 : width 32,150
  on_click 32,content : caption 32,"WriteExcelCellContent"
button 33 : top 33,190 : left 33,240 : width 33,150
  on_click 33,formula : caption 33,"WriteExcelCellFormula"
alpha 1013 : top 1013,160 : left 1013,410 : caption 1013,"Contenu:"
edit 1014 : top 1014,160 : left 1014,480 : width 1014,300
alpha 1015 : top 1015,190 : left 1015,410 : caption 1015,"Formule:"
edit 1016 : top 1016,190 : left 1016,480 : width 1016,300

alpha 1021 : top 1021,220 : left 1021,10 : caption 1021,"Fourchette:"
edit 1022 : top 1022,220 : left 1022,80 : width 1022,60 : text 1022,"A1:A4"
button 34 : top 34,220 : left 34,240 : width 34,150
  on_click 34,sel : caption 34,"SelectExcelRange"
button 35 : top 35,220 : left 35,410 : width 35,150
  on_click 35,copy : caption 35,"CopyExcelSelection"

alpha 1031 : top 1031,250 : left 1031,10 : caption 1031,"Fourchette:"
edit 1032 : top 1032,250 : left 1032,80 : width 1032,60 : text 1032,"C5:C8"
button 36 : top 36,250 : left 36,240 : width 36,150
  on_click 36,paste : caption 36,"PasteExcelSelection"
 
alpha 1041 : top 1041,280 : left 1041,10 : caption 1041,"Text Attributs:"
combo 1042 : top 1042,280 : left 1042,80 : font_names_load 1042
combo 1043 : top 1043,280 : left 1043,240 : width 1043,40
check 1044 : top 1044,280 : left 1044,300 : caption 1044,"Gras"
check 1045 : top 1045,280 : left 1045,360 : caption 1045,"Italique"
check 1046 : top 1046,280 : left 1046,420 : caption 1046,"Sous-ligné" : width 1046,70
alpha 1047 : top 1047,280 : left 1047,510 : caption 1047,"R:"
combo 1048 : top 1048,280 : left 1048,530 : width 1048,50
alpha 1049 : top 1049,280 : left 1049,600 : caption 1049,"G:"
combo 1050 : top 1050,280 : left 1050,620 : width 1050,50
alpha 1051 : top 1051,280 : left 1051,690 : caption 1051,"B:"
combo 1052 : top 1052,280 : left 1052,710 : width 1052,50
button 37 : top 37,280 : left 37,810 : width 37,150
  on_click 37,textstyle : caption 37,"SetExcelSelectionTextStyle"

alpha 1061 : top 1061,310 : left 1061,10 : caption 1061,"Cell Attributs:"
alpha 1075 : top 1075,310 : left 1075,100 : caption 1075,"Bordure:"
alpha 1076 : top 1076,310 : left 1076,160 : caption 1076,"  Localisation:"
combo 1077 : top 1077,310 : left 1077,240 : width 1077,50

alpha 1078 : top 1078,310 : left 1078,310 : caption 1078,"Type:"
combo 1074 : top 1074,310 : left 1074,340 : width 1074,50

alpha 1081 : top 1081,310 : left 1081,410 : caption 1081,"Poids:"
combo 1082 : top 1082,310 : left 1082,440 : width 1082,50

alpha 1062 : top 1062,310 : left 1062,510 : caption 1062,"R:"
combo 1063 : top 1063,310 : left 1063,530 : width 1063,50
alpha 1064 : top 1064,310 : left 1064,600 : caption 1064,"G:"
combo 1065 : top 1065,310 : left 1065,620 : width 1065,50
alpha 1066 : top 1066,310 : left 1066,690 : caption 1066,"B:"
combo 1067 : top 1067,310 : left 1067,710 : width 1067,50

alpha 1080 : top 1080,340 : left 1080,100 : caption 1080,"Fond:"
alpha 1068 : top 1068,340 : left 1068,510 : caption 1068,"R:"
combo 1069 : top 1069,340 : left 1069,530 : width 1069,50
alpha 1070 : top 1070,340 : left 1070,600 : caption 1070,"G:"
combo 1071 : top 1071,340 : left 1071,620 : width 1071,50
alpha 1072 : top 1072,340 : left 1072,690 : caption 1072,"B:"
combo 1073 : top 1073,340 : left 1073,710 : width 1073,50
button 38 : top 38,310 : left 38,810 : width 38,150
 on_click 38,cellstyle : caption 38,"SetExcelSelectionCellStyle"

alpha 1091 : top 1091,370 : left 1091,10 : caption 1091,"Feuille:"
edit 1092 : top 1092,370 : left 1092,80 : width 1092,120 : text 1092,"Feuil2"
button 39 : top 39,370 : left 39,240 : width 39,150
  on_click 39,selectsheet : caption 39,"SelectExcelWorkBookSheet"
button 42 : top 42,370 : left 42,410 : width 42,150
  on_click 42,newsheet : caption 42,"NewExcelWorkBookSheet"
button 41 : top 41,370 : left 41,580 : width 41,150
  on_click 41,removesheet : caption 41,"RemoveExcelWorkBookSheet"
edit 1094 : top 1094,400 : left 1094,80 : width 1094,120
button 40 : top 40,400 : left 40,240 : width 40,150
  on_click 40,renamesheet : caption 40,"RenameExcelWorkBookSheet"



text 1042,"Arial"
item_add 1043,"8"
item_add 1043,"10"
item_add 1043,"12"
item_add 1043,"14"
item_add 1043,"16"
item_add 1043,"18"
item_add 1043,"20"
item_add 1043,"22"
item_add 1043,"24"
text 1043,"10"
for k%=0 to 255
  item_add 1048,str$(k%)
  item_add 1050,str$(k%)
  item_add 1052,str$(k%)
next k%
text 1048,"0"
text 1050,"0"
text 1052,"0"
for k%=1 to 12
  item_add 1077,str$(k%)
next k%
text 1077,"1"
for k%=0 to 255
  item_add 1063,str$(k%)
  item_add 1065,str$(k%)
  item_add 1067,str$(k%)
  item_add 1069,str$(k%)
  item_add 1071,str$(k%)
  item_add 1073,str$(k%)
next k%
text 1063,"0"
text 1065,"0"
text 1067,"0"
text 1069,"0"
text 1071,"0"
text 1073,"0"
for k%=0 to 5
  item_add 1074,str$(k%)
next k%
text 1074,"1"
for k%=0 to 4
  item_add 1082,str$(k%)
next k%
text 1082,"1"
KGF_initialize("KGF.dll")


end

start:
  StartExcel(1)
  LogStatus()
  return

termin8:
  TerminateExcel()
  LogStatus()
  return

open:
  OpenExcelWorkBook(wb$)
  LogStatus()
  return

new:
  NewExcelWorkBook()
  LogStatus()
  return

close:
  CloseExcelWorkBook()
  LogStatus()
  return

saveas:
  SaveExcelWorkBookAs(wb$)
  LogStatus()
  return

save:
  SaveExcelWorkBook()
  LogStatus()
  return

rd:
  range$ = trim$(text$(1002))
  ReadExcelCell(range$)
  text 1004,ReadExcelCellContent$
  text 1006,ReadExcelCellformula$
  LogStatus()
  return

content:
  range$ = trim$(text$(1012))
  txt$ = trim$(text$(1014))
  WriteExcelCellContent(range$,txt$)
  LogStatus()
  return

formula:
  range$ = trim$(text$(1012))
  frm$ = trim$(text$(1016))
  WriteExcelCellFormula(range$,frm$)
  LogStatus()
  return

sel:
  range$ = trim$(text$(1022))
  SelectExcelRange(range$)
  LogStatus()
  return

copy:
  CopyExcelSelection()
  LogStatus()
  return
 
paste:
  range$ = trim$(text$(1032))
  PasteExcelSelection(range$)
  LogStatus()
  return
 
textstyle:
  police$ = text$(1042)
  siz% = val(text$(1043))
  B% = checked(1044)
  I% = checked(1045)
  S% = checked(1046)
  col% = (val(text$(1052))*256 + val(text$(1050)))*256 + val(text$(1048))
  SetExcelSelectionTextStyle(police$,siz%,B%,I%,S%,col%)
  LogStatus()
  return

cellstyle:
  lcol% = (val(text$(1067))*256 + val(text$(1065)))*256 + val(text$(1063))
  icol% = (val(text$(1073))*256 + val(text$(1071)))*256 + val(text$(1069))
  ind% = val(text$(1077))
  typ% = val(text$(1074))
  poids% = val(text$(1082))
  SetExcelSelectionCellStyle(ind%,typ%,poids%,lcol%,icol%)
  LogStatus()
  return
 
selectsheet:
  sheet$ = text$(1092)
  SelectExcelWorkBookSheet(sheet$)
  LogStatus()
  return

newsheet:
  sheet$ = text$(1092)
  NewExcelWorkBookSheet(sheet$)
  LogStatus()
  return

renamesheet:
  sheet$ = text$(1092)
  sheet1$ = text$(1094)
  RenameExcelWorkBookSheet(sheet$,sheet1$)
  LogStatus()
  return

removesheet:
  sheet$ = text$(1092)
  RemoveExcelWorkBookSheet(sheet$)
  LogStatus()
  return

status:
  GetActualExcelStatus()
  caption 0,ActualExcelWorkBook$+" "+ActualExcelSheet$+" "+ActualExcelSelection$+" "+str$(ActualExcelSelectionLines%)+" lignes "+str$(ActualExcelSelectionColumns%)+" colonnes"
  LogStatus()
  return
 
sub LogStatus()
  caption 4,resultat$(ExcelError%)
end_sub


#INCLUDE "KGF_SUB.bas"


Dernière édition par Klaus le Ven 15 Mar 2013 - 13:47, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jicehel

avatar

Nombre de messages : 5841
Age : 44
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: 2.05 du 14 Mars 2013: gestion de Excel !   Jeu 14 Mar 2013 - 14:36

Génial, il faut que je me prenne un peu de temps, ça peut mettre utile si je réfléchi un peu.
Merci Klaus.

PS: tu as l'intention de le faire aussi pour Word ?
Je deamnde, je n'ai pas de besoin direct, mais comme tu as trouvé pour Excel, je pense que la démarche doit être sensiblement similaire pour Word et je pense que ça peut interesser aussi. En tout cas, pour le moment, c'est juste une question de curiosité.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
topmozika

avatar

Nombre de messages : 77
Age : 56
Localisation : Antananarivo - Madagascar
Date d'inscription : 09/06/2012

MessageSujet: Re: 2.05 du 14 Mars 2013: gestion de Excel !   Jeu 14 Mar 2013 - 14:40

Merci Klaus ! gérer excel a partir de PANORAMIC m’intéresse beaucoup.
A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 10062
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: 2.05 du 14 Mars 2013: gestion de Excel !   Jeu 14 Mar 2013 - 14:43

Le même principe peut être employé pour gérer n'importe quel logiciel qui accepte l'interface OLE, dont Word, bien sûr.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 10062
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: 2.05 du 14 Mars 2013: gestion de Excel !   Ven 15 Mar 2013 - 1:19

Je me suis rendu compte que je n'avais pas encore documenté les 11 fonctions de gestion de mon Pseudo-Objet StringList ! Voilà qui est fait maintenant. La doc pour les fonctions de Excel va suivre...

Modules modifiés:
KGF.chm, KGF.doc et KGF.pdf

KGF.dll n'est pas concerné - elle contient ces modules depuis longtemps !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

Nombre de messages : 10062
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: 2.05 du 14 Mars 2013: gestion de Excel !   Ven 15 Mar 2013 - 13:49

La doc pour les 20 fonctions de gestion Excel est faite !

Modules modifiés:
KGF.chm, KGF.doc, KGF.pdf
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7930
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Ven 15 Mar 2013 - 14:20

Bravo pour tout ce travail.
Tu mérites bien une pause jeu maintenant... Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5841
Age : 44
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: 2.05 du 14 Mars 2013: gestion de Excel !   Ven 15 Mar 2013 - 14:57

Je crois que pour Klaus, le fait de réussir à faire ce qu'il a en tête est une sorte de jeu à part entière. Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: 2.05 du 14 Mars 2013: gestion de Excel !   

Revenir en haut Aller en bas
 
2.05 du 14 Mars 2013: gestion de Excel !
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Cours par ChatBox - Samedi 30 Mars 2013
» [festival] - Le Troll et légende - le 29, 30, 31 mars 2013
» Commande 2013 [Isabo]
» Gestion des cantons en mode hors ligne
» Gestion de la position de la souris

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Activité des sites créés par les Panoramiciens. :: Le site de Klaus-
Sauter vers: