PB à toute heure et à tout moment. (à parcourir avec modération)

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 03-04-2014 09:13:23

Sebastouche  
Membre Geek
Lieu: rennes
Date d'inscription: 30-01-2008
Messages: 36
Pépites: 164
Banque: 0

Problème Excel Viewer

Bonjour,

Un client a installé Excel Viewer sur son serveur.

Une fonctionnalité de notre application importe des données via Excel.
J'utilise le code suivant :
ConnectToNewObject("excel.application")

Or çà ne semble pas fonctionner pour Viewer. Excepté le fait de suggérer d'installer Excel, voyez vous d'autres solutions ?

Merci d'avance,
Sébastien

Hors ligne

 

#2 03-04-2014 11:35:45

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Problème Excel Viewer

Bonjour, c'est possible en utilisant ADO.


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#3 03-04-2014 17:35:56

Yanis  
Modérateur
Lieu: paris
Date d'inscription: 16-06-2010
Messages: 349
Pépites: 665
Banque: 150

Re: Problème Excel Viewer

Salut,

    Ne serait pas possible d'utiliser l'API Windows  ShellExecuteA qui lance la bonne application en fonction de l'application associé à l'extension du fichier ?

Cdt
Yanis

Hors ligne

 

#4 04-04-2014 07:11:42

Sebastouche  
Membre Geek
Lieu: rennes
Date d'inscription: 30-01-2008
Messages: 36
Pépites: 164
Banque: 0

Re: Problème Excel Viewer

Bonjour,

L'idée semble intéressante !
Dans tous les cas il faudra faire évoluer ma fonction d'import.

Yanis a écrit:

Salut,

    Ne serait pas possible d'utiliser l'API Windows  ShellExecuteA qui lance la bonne application en fonction de l'application associé à l'extension du fichier ?

Cdt
Yanis

Hors ligne

 

#5 04-04-2014 07:21:20

_francois_  
Bienfaiteur du site
Lieu: TOULOUSE
Date d'inscription: 25-03-2010
Messages: 151
Pépites: 178,983,268,111
Banque: 9,223,372,036,854,776,000

Re: Problème Excel Viewer

Yanis a écrit:

Salut,

    Ne serait pas possible d'utiliser l'API Windows  ShellExecuteA qui lance la bonne application en fonction de l'application associé à l'extension du fichier ?

Cdt
Yanis

Si j'ai bien compris:
il ouvre un fichier Excel par OLE et il lit les données à l'intérieur du fichier Excel pour récupérer ces données dans PB.
Le ShellExecute va seulement lui permettre d'ouvrir le fichier mais pas de la lire.


En ce qui concerne le fichier Excel lui même.
Quel est son "format" ?
Du gros tableau avec des formules et tout ?
Ou juste une "liste de colonne" que l'on pourrait éventuellement sauver au format CSV pour en faire un import direct dans une Datawindow avec un ImportFile ?

Hors ligne

 

#6 04-04-2014 07:36:46

Sebastouche  
Membre Geek
Lieu: rennes
Date d'inscription: 30-01-2008
Messages: 36
Pépites: 164
Banque: 0

Re: Problème Excel Viewer

C'est assez simple en soi. Il s'agit d'une simple tableau de valeurs dans un seul onglet.
Les autres clients ayant Excel sur leur serveur, le problème ne se pose pas.

L'option d'un importfile au format CSV est intéressante.
Si le client impose Viewer, je pense que je choisirai cette option.

Merci à vous pour ces réponses rapides.

_francois_ a écrit:

Yanis a écrit:

Salut,

    Ne serait pas possible d'utiliser l'API Windows  ShellExecuteA qui lance la bonne application en fonction de l'application associé à l'extension du fichier ?

Cdt
Yanis

Si j'ai bien compris:
il ouvre un fichier Excel par OLE et il lit les données à l'intérieur du fichier Excel pour récupérer ces données dans PB.
Le ShellExecute va seulement lui permettre d'ouvrir le fichier mais pas de la lire.


En ce qui concerne le fichier Excel lui même.
Quel est son "format" ?
Du gros tableau avec des formules et tout ?
Ou juste une "liste de colonne" que l'on pourrait éventuellement sauver au format CSV pour en faire un import direct dans une Datawindow avec un ImportFile ?

Hors ligne

 

#7 05-04-2014 16:06:56

patrick_remy  
Membre
Lieu: bruxelles
Date d'inscription: 28-05-2008
Messages: 13
Pépites: 39
Banque: 0

Re: Problème Excel Viewer

Je viens de voir que l'EXCEL Viewer supporte aussi l'OLE:

http://www.theiet.org/help/software/excelviewer.cfm

Il faut donc trouver la bonne class ole (ex: xyz) dans le browser PB et mettre son nom dans le connectNewObject.

ConnectToNewObject("xyz.application")

Si cette solution est possible, le code existant ne devrait pas changer.

Hors ligne

 

#8 05-04-2014 16:38:45

patrick_remy  
Membre
Lieu: bruxelles
Date d'inscription: 28-05-2008
Messages: 13
Pépites: 39
Banque: 0

Re: Problème Excel Viewer

D'après la doc powerbuilder, on est pas obligé de mettre le nom de la classe (le server OLE).

On peut directement mettre le nom du fichier à visualiser et utiliser la fonction ConnectToObject



Exemple:

This example declares and creates an OLEObject variable and connects to an Excel worksheet, which is opened in Excel. It then sets a value in the worksheet, saves it, and destroys the OLEObject variable, which exits the Excel:

integer result

OLEObject myoleobject


myoleobject = CREATE OLEObject

result = myoleobject.ConnectToObject( "c:\excel\expense.xls")


IF result = 0 THEN

    myoleobject.application.workbooks(1).&

    worksheets(1).cells(1,1).value = 14

    myoleobject.application.workbooks(1).save()

END IF

DESTROY myoleobject

http://infocenter.sybase.com/archive/in … IBDIJC.htm

Hors ligne

 

#9 08-04-2014 12:51:35

_francois_  
Bienfaiteur du site
Lieu: TOULOUSE
Date d'inscription: 25-03-2010
Messages: 151
Pépites: 178,983,268,111
Banque: 9,223,372,036,854,776,000

Re: Problème Excel Viewer

patrick_remy a écrit:

D'après la doc powerbuilder, on est pas obligé de mettre le nom de la classe (le server OLE).

On peut directement mettre le nom du fichier à visualiser et utiliser la fonction ConnectToObject



Exemple:

This example declares and creates an OLEObject variable and connects to an Excel worksheet, which is opened in Excel. It then sets a value in the worksheet, saves it, and destroys the OLEObject variable, which exits the Excel:

integer result

OLEObject myoleobject


myoleobject = CREATE OLEObject

result = myoleobject.ConnectToObject( "c:\excel\expense.xls")


IF result = 0 THEN

    myoleobject.application.workbooks(1).&

    worksheets(1).cells(1,1).value = 14

    myoleobject.application.workbooks(1).save()

END IF

DESTROY myoleobject

http://infocenter.sybase.com/archive/in … IBDIJC.htm

sauf qu'il faut quand même Excel le vrai installé pour que ça fonctionne.

Au pire si Excel Viewer à la place d'excel c'est seulement une question de licence il y a toujours la possibilité de mettre Open/LibreOffice

Hors ligne

 

#10 08-04-2014 12:56:29

Sebastouche  
Membre Geek
Lieu: rennes
Date d'inscription: 30-01-2008
Messages: 36
Pépites: 164
Banque: 0

Re: Problème Excel Viewer

Merci pour toutes les infos.

Je vais tenter d'orienter l'utilisateur vers une installation d'Excel.

Hors ligne

 

#11 11-04-2014 07:00:41

patrick_remy  
Membre
Lieu: bruxelles
Date d'inscription: 28-05-2008
Messages: 13
Pépites: 39
Banque: 0

Re: Problème Excel Viewer

François a écrit:
"sauf qu'il faut quand même Excel le vrai installé pour que ça fonctionne."

Non, Excel ne doit pas être installé. C'est le Excel Viewer qui doit être installé.

Hors ligne

 

#12 11-04-2014 11:39:20

_francois_  
Bienfaiteur du site
Lieu: TOULOUSE
Date d'inscription: 25-03-2010
Messages: 151
Pépites: 178,983,268,111
Banque: 9,223,372,036,854,776,000

Re: Problème Excel Viewer

patrick_remy a écrit:

François a écrit:
"sauf qu'il faut quand même Excel le vrai installé pour que ça fonctionne."

Non, Excel ne doit pas être installé. C'est le Excel Viewer qui doit être installé.

Oups j'ai zappé le bout qui dit que le Viewer implémente l'OLE
je ne sais pas pourquoi mais dans ma tête le Viewer n'avait pas la couche COM
donc oui ça devrait marcher.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22