OVH Cloud OVH Cloud

Ouvrir un fichier excel en WinDev

12 réponses
Avatar
Roumegou Eric
Bonjour,
une ch'tite dernière en 2007 ...

J'ai besoin dans un traitement d'afficher un fichier Excel que
l'utilisateur sélectionne. Pour cela j'utilisais un champs HTML, c'est
super pratique avec juste un
HTML1=SC_SelecteurFichier.SAI_FIC
J'ai juste besoin que l'utilisateur voit son fichier et ses colonnes;
je le travaille ensuite (le fichier pas l'utilisateur) avec les fns XLS
de WD.

Fort bien! j'ai mis ça au point sur mon portable et je reviens sur ma
machine de dev (Vista et Office 2007).

Et là je m'aperçois qu'il ouvre ça dans une nouvelle fenêtre et pas
dans mon champs HTML :-[
Je ne sais pas qui de Vista ou la vs Office 2007 est responsable de cet
état de fait mais ...
Comment le forcer à m'ouvrir ce fichier ds le champs HTML ?

Merci de vos réponses.

--
Eric Roumégou
Webmaster des Wtablettes
http://cerbermail.com/?qE7t4Qvilo
(cliquez sur le lien ci-dessus pour m'écrire)

2 réponses

1 2
Avatar
Jacques
Roumegou Eric a écrit :
Il se trouve que Daireaux Jean-Baptiste a formulé :
Pascal F a écrit :
Roumegou Eric avait écrit le 30/12/2007 :
Bonjour,
une ch'tite dernière en 2007 ...

J'ai besoin dans un traitement d'afficher un fichier Excel que
l'utilisateur sélectionne. Pour cela j'utilisais un champs HTML,
c'est super pratique avec juste un
HTML1=SC_SelecteurFichier.SAI_FIC
J'ai juste besoin que l'utilisateur voit son fichier et ses
colonnes; je le travaille ensuite (le fichier pas l'utilisateur)
avec les fns XLS de WD.

Fort bien! j'ai mis ça au point sur mon portable et je reviens sur
ma machine de dev (Vista et Office 2007).

Et là je m'aperçois qu'il ouvre ça dans une nouvelle fenêtre et pas
dans mon champs HTML :-[
Je ne sais pas qui de Vista ou la vs Office 2007 est responsable de
cet état de fait mais ...
Comment le forcer à m'ouvrir ce fichier ds le champs HTML ?

Merci de vos réponses.



Voir sur le forum en face le post ActiveX et Office 2007 ouvert le
02/08/07, tu devrais trouver la réponse, ainsi que dans les FAQ de
l'éditeur.




Il y a effectivement une solution dans la FAQ. Mais ils faut aller
bidouiller le paramétrage du windows de chaque client. Ce qui n'est
pas vraiment envisageable ...

Merci quand même.

J.B.D.



Voici la FAQ
Que faire si les documents Word ou Excel 2007 visualisés dans vos
applications s'ouvrent dans une nouvelle fenêtre au lieu de la fenêtre
en cours ?


Vous pouvez avec l'ActiveX de Internet Explorer visualiser dans vos
applications des documents Word ou des classeurs Excel. Après
l'installation de Word ou Excel 2007, l'ouverture de ces documents peut
se faire non plus dans votre application, mais dans une nouvelle fenêtre
de Word, ou de Excel.

Pour retrouver la visualisation dans votre application, effectuez le
réglage suivant sous Windows :
- menu "Outils ... Options des dossiers" de l'Explorateur sous XP, ou
"control folders" dans "Démarrer ... Exécuter" sous Vista,
- volet "Types de fichiers",
- sélectionner l'option "DOC", ou "XLS",
- cliquer sur le bouton "Avancé",
- décocher "Confirmer l'ouverture après téléchargement",
- cocher "Parcourir dans une même fenêtre".


le pb c'est que tout cela sous Vista, cela fait 1h que je le cherche et
l'onglet type fichier, bouton avancé cela n'existe pas.
et aux vues de mes rech google, je ne suis pas le seul à le rechercher.





SI RegistreExiste("HKEY_CLASSES_ROOTExcel.Sheet.8", "EditFlags") ALORS
gbBRetVal est un booléen
gbBRetVal = RegistreEcrit("HKEY_CLASSES_ROOTExcel.Sheet.8",
"EditFlags", 0x10000)
SI PAS gbBRetVal ALORS
Erreur ("Impossible d'écrire la valeur dans HKCRExcel.Sheet.8EditFlags")
FIN
SINON
Erreur("Impossible de lire la valeur
HKEY_CLASSES_ROOTExcel.Sheet.8EditFlags")
FIN

C'est mieux au cas où la valeur EditFlags n'existait pas (je ne sais pas
comment c'est sous Vista).
Avatar
Roumegou Eric
Merci beaucoup à Jacques qui m'a donné la meilleure des solutions pour
résoudre ce problème.
Principe. On met les valeurs de registre que l'on désire, puis on
restore celle qu'il y avait avant.

Voici celle-ci détaillée.
On déclare des variables globales
GLOBAL
gnCurrKeyVal,gnCurrKeyVal2 sont des entiers
gbR1,gbR2 sont des booléens

Dans l'init de la fenêtre, il faut taper dans "EditFlags" et
"BrowserFlags"

gbRetVal est booléen
// on force les valeurs de registres pour pouvoir charger le fichier
Excel dans un champs HTML
gbR1úux;gbR2úux
SI RegistreExiste("HKEY_CLASSES_ROOTExcel.Sheet.8", "EditFlags") ALORS
// on sauvegarde la valeur initiale
gnCurrKeyVal = RegistreLit("HKEY_CLASSES_ROOTExcel.Sheet.8",
"EditFlags")
SI gnCurrKeyVal <> 0x10000 ALORS
gbRetVal = RegistreEcrit("HKEY_CLASSES_ROOTExcel.Sheet.8",
"EditFlags", 0x10000)
SI PAS gbRetVal ALORS
Erreur ("Impossible d'écrire la valeur dans
HKCRExcel.Sheet.8EditFlags")
SINON
gbR1=Vrai // j'ai changé
FIN
FIN
SINON
Erreur("Impossible de lire la valeur
HKEY_CLASSES_ROOTExcel.Sheet.8EditFlags")
FIN
SI RegistreExiste("HKEY_CLASSES_ROOTExcel.Sheet.8", "BrowserFlags")
ALORS
// on sauvegarde la valeur initiale
gnCurrKeyVal2 = RegistreLit("HKEY_CLASSES_ROOTExcel.Sheet.8",
"BrowserFlags")
SI gnCurrKeyVal2 <> 0 ALORS
gbRetVal = RegistreEcrit("HKEY_CLASSES_ROOTExcel.Sheet.8",
"BrowserFlags", 0)
SI PAS gbRetVal ALORS
Erreur ("Impossible d'écrire la valeur dans
HKCRExcel.Sheet.8BrowserFlags")
SINON
gbR2=Vrai // j'ai changé
FIN
FIN
FIN
// -- fin gestion des valeurs de registre Excel



Et à la fermeture de la fenêtre
// je restaure les valeurs de registre modifiées

RetVal est un booléen
SI gbR1 ALORS
RetVal = RegistreEcrit("HKEY_CLASSES_ROOTExcel.Sheet.8", "EditFlags",
gnCurrKeyVal)
SI PAS RetVal ALORS
Erreur ("Impossible de restaurer la clé
HKEY_CLASSES_ROOTExcel.Sheet.8EditFlags")
FIN
FIN
SI gbR2 ALORS
RetVal = RegistreEcrit("HKEY_CLASSES_ROOTExcel.Sheet.8",
"BrowserFlags", gnCurrKeyVal2)
SI PAS RetVal ALORS
Erreur ("Impossible de restaurer la clé
HKEY_CLASSES_ROOTExcel.Sheet.8BrowserFlags")
FIN
FIN



Ceci dit, autre phénomène que je n'ais qu'avec l'office 2007; ma
fenêtre fonctionne avec des plans, donc j'affichait le fichier Excel
dans un chp html sur un premier plan, puis je le réaffichais ds un
autre chp html sur le plan suivant. Et bien cela n'est pas autorisé par
Excel !!
Bon j'ai supprimé ce 2eme champs qui n'était pas vraiment obligatoire.
1 2