Export Excel hors OLE ?

Le
Sam.G.
Bonjour,

J'aurais besoin de produire un export Excel important. Actuellement par
les liens OLE c'est lent malgré un Excel rendu invisible, et remplissage
ligne par ligne (et non cellule par cellule pour ne pas perdre trop de
temps). Sans compter que les copier/coller en boucles sont pénalisants
(pour un usage d'une autre application le temps que ça se termine).

Or WinDev 10 sait faire un export vers Excel sans passer par OLE.
L'export d'une table mémoire massive vers un fichier XLS ne démarre pas
Excel (et avec 40000 lignes j'ai eu le temps de vérifier la présence du
process).

Est-ce qu'il y a dans WD10 un moyen que je ne connais pas encore
d'exporter vers Excel ? S'ils permettent un export performant à partir
d'une table mémoire, il doit bien avoir mis des fonctions plus basiques
à disposition pour les développeurs ? (enfin ça serait constructif comme
démarche).

Note : le périmètre est limite à la version 10 de Windev, la 11 je ne
veux pas en entendre parler. On verra à la sortie de la 12.

Merci d'avance pour toute suggestion.
Sam.
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
Pascal F
Le #14383701
Sam.G. a utilisé son clavier pour écrire :
Bonjour,

J'aurais besoin de produire un export Excel important. Actuellement par les liens OLE c'est lent malgré un Excel rendu
invisible, et remplissage ligne par ligne (et non cellule par cellule pour ne pas perdre trop de temps). Sans compter que les
copier/coller en boucles sont pénalisants (pour un usage d'une autre application le temps que ça se termine).

Or WinDev 10 sait faire un export vers Excel sans passer par OLE. L'export d'une table mémoire massive vers un fichier XLS ne
démarre pas Excel (et avec 40000 lignes j'ai eu le temps de vérifier la présence du process).

Est-ce qu'il y a dans WD10 un moyen que je ne connais pas encore d'exporter vers Excel ? S'ils permettent un export performant
à partir d'une table mémoire, il doit bien avoir mis des fonctions plus basiques à disposition pour les développeurs ? (enfin
ça serait constructif comme démarche).

Note : le périmètre est limite à la version 10 de Windev, la 11 je ne veux pas en entendre parler. On verra à la sortie de la
12.

Merci d'avance pour toute suggestion.
Sam.



en déclarant le fichier excel comme un fichier externe et et en faisant des hajoute ?

--
Pascal

Ne garder que le prénom pour me joindre
[Bernard Vessiot]
Le #14383691
Sam.G. a pensé très fort :
Bonjour,

J'aurais besoin de produire un export Excel important. Actuellement par les
liens OLE c'est lent malgré un Excel rendu invisible, et remplissage ligne
par ligne (et non cellule par cellule pour ne pas perdre trop de temps). Sans
compter que les copier/coller en boucles sont pénalisants (pour un usage
d'une autre application le temps que ça se termine).

Or WinDev 10 sait faire un export vers Excel sans passer par OLE. L'export
d'une table mémoire massive vers un fichier XLS ne démarre pas Excel (et avec
40000 lignes j'ai eu le temps de vérifier la présence du process).

Est-ce qu'il y a dans WD10 un moyen que je ne connais pas encore d'exporter
vers Excel ? S'ils permettent un export performant à partir d'une table
mémoire, il doit bien avoir mis des fonctions plus basiques à disposition
pour les développeurs ? (enfin ça serait constructif comme démarche).

Note : le périmètre est limite à la version 10 de Windev, la 11 je ne veux
pas en entendre parler. On verra à la sortie de la 12.

Merci d'avance pour toute suggestion.
Sam.



salut,
dans le cas d'un export important, pourquoi ne pas passer directement
par un fichier texte (tab tab return).
Il suffit de tricher un peu en donnant l'extension XLS a ce fichier
texte, pour que Excel l'ouvre directement.
De plus tu gardes l'avantage de pouvoir "formater" le cas echeant tes
rubriques.
C'est un moyen que j'utilise assez souvent dans le cas de gros volumes
de données.
voila
@+++

--
[Bernard Vessiot]
34980 Saint Gély du Fesc

Michel
Le #14383681
Sam.G. a écrit :
Bonjour,

J'aurais besoin de produire un export Excel important. Actuellement par
les liens OLE c'est lent malgré un Excel rendu invisible, et remplissage
ligne par ligne (et non cellule par cellule pour ne pas perdre trop de
temps). Sans compter que les copier/coller en boucles sont pénalisants
(pour un usage d'une autre application le temps que ça se termine).

Or WinDev 10 sait faire un export vers Excel sans passer par OLE.
L'export d'une table mémoire massive vers un fichier XLS ne démarre pas
Excel (et avec 40000 lignes j'ai eu le temps de vérifier la présence du
process).

Est-ce qu'il y a dans WD10 un moyen que je ne connais pas encore
d'exporter vers Excel ? S'ils permettent un export performant à partir
d'une table mémoire, il doit bien avoir mis des fonctions plus basiques
à disposition pour les développeurs ? (enfin ça serait constructif comme
démarche).

Note : le périmètre est limite à la version 10 de Windev, la 11 je ne
veux pas en entendre parler. On verra à la sortie de la 12.

Merci d'avance pour toute suggestion.
Sam.


S'il s'agit d'un export de donnée, pourquoi pas le csv, il est reconnu
par excel et pas plus basique qu'un export TableVersExcel.

Michel
Sam.G.
Le #14383401
Pascal F a écrit :
en déclarant le fichier excel comme un fichier externe et et en faisant
des hajoute ?



Ouarf ! J'ai cru à une blague, un propos ironique, et j'ai failli passer
à côté :p

Je ne connais pas bien le OLE DB (faute de m'y être intéressé de près un
jour), il y a des pré-requis non ? L'installation de EXCEL (of course)
et MDAC est suffisant, ou faut-il prévoir d'autres choses au déploiement
? Des trucs optionnels de Excel ?

Indépendamment de cette question relative au déploiement, je vais
expérimenter la chose. Merci pour ce conseil en particulier, et merci
pour toutes les autres réponses ;-)

Sam.
Pascal F
Le #14383381
Sam.G. vient de nous annoncer :
Pascal F a écrit :
en déclarant le fichier excel comme un fichier externe et et en faisant des hajoute ?



Ouarf ! J'ai cru à une blague, un propos ironique, et j'ai failli passer à côté :p

Je ne connais pas bien le OLE DB (faute de m'y être intéressé de près un jour), il y a des pré-requis non ? L'installation de
EXCEL (of course) et MDAC est suffisant, ou faut-il prévoir d'autres choses au déploiement ? Des trucs optionnels de Excel ?

Indépendamment de cette question relative au déploiement, je vais expérimenter la chose. Merci pour ce conseil en particulier,
et merci pour toutes les autres réponses ;-)

Sam.



Je pense que ce que tu indiques est suffisant mais peut être que MSQuery est nécessaire aussi, mais pas sur.

--
Pascal

Ne garder que le prénom pour me joindre
Sam.G.
Le #14383331
J'ai effectué quelques tests approfondis, et finalement je crois que je
vais arrêter de me focaliser sur Excel...

Lorsque nous avions développés les premiers exports (WD55, Excel 97 ou
2000 sous W2K, machines plus anciennes et non hyperthreaded), l'export
OLE/Excel introduisait une perte de temps très significative par rapport
au même export en simple texte.

Aujourd'hui avec un hyperthreading, suffisement de RAM pour éviter tout
risque de swap, etc... le surcoût d'un export Excel est presque
négligeable par rapport à un export texte (ou un export à blanc : rien
n'est produit).

Il y aurait tout de même des choses à améliorer, mais le goulot
d'étranglement dans cette affaire c'est HyperFile. Car il ne s'agit pas
d'un simple parcours séquentiel (et non, ce n'est pas un problème
d'index mal pensé) et là ça ne suit pas du tout :-(

Pour certains exports très très volumineux on passera par du CSV. Pour
le reste, la remise en cause sera peut-être plus profonde...

En tout cas merci pour les réponses.
Sam.
Poster une réponse
Anonyme