Après windows pour les nuls, voici PB pour les bons (ou presque).

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 07-06-2006 08:46:31

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

[SOURCE] Enregistrer le contenu d'une datawindow en format excel

Hello !
Voici un bout de script pour enregistrer le contenu de vos datawindows en format excel.

test effectué sur pb7, normalement ca devrait fonctionner sous pb6 et +

importer ce script (fonction globale) :

Code: pb

$PBExportHeader$f_saveas_excel.srf
$PBExportComments$enregistre la datawindow en format excel
global type f_saveas_excel from function_object
end type

forward prototypes
global function integer f_saveas_excel (datawindow adw_dw, string as_docname)
end prototypes

global function integer f_saveas_excel (datawindow adw_dw, string as_docname);///////////////////////////////////////////////////////////////////////////////////////////////////////
// Converting DataWindow to Excel file
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Export DataWindow to Excel including computed-columns, headers, footers, groups, text labels, etc... 
///////////////////////////////////////////////////////////////////////////////////////////////////////
// ... Init docname
// ... GetFileOpenName or any other method
//
IF adw_dw.SaveAs( as_docname, HTMLTable!, TRUE ) = -1 THEN
    MessageBox("Attention", "Impossible d'exporter la datawindow en format HTML!", Exclamation!)
    RETURN -1
END IF 
//
// Convert HTML file to Excel native format
OLEObject Excel 

Excel = CREATE OLEObject 
//
IF Excel.ConnectToObject( as_docname ) = 0 THEN
   Excel.Application.DisplayAlerts = FALSE 
   Excel.Application.Workbooks( 1 ).Parent.Windows( excel.Application.workbooks( 1 ).Name ).Visible = TRUE 
   // Excel.Application.Workbooks( 1 ).SaveAs(as_docname, 39 ) ;
  Excel.Application.Workbooks( 1 ).SaveAs(as_docname, 1 )  // SKA jan 2005
   Excel.Application.Workbooks( 1 ).Close() 
END IF 
//
DESTROY excel
//
// ...Done

return 1
end function

et pour le script d'appel :

Code: pb

f_saveas_excel(dw_detail,'c:/test_pb.xls')

et voila, le tour est joué !


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#2 01-08-2008 11:53:59

Nyphel  
Membre Power Geek
Lieu: Grenoble
Date d'inscription: 06-05-2008
Messages: 253
Pépites: 12
Banque: 529,705,333,097,693

Re: [SOURCE] Enregistrer le contenu d'une datawindow en format excel

Très utile, merci beaucoup pour ce script

Juste une ou deux petites remarques : Pb 10.2.0 build 8075

- il me sauvegarde mon numéro de page "1/1" en tant que "01-jan"

- lors de l'ouverture du fichier il y a Microsoft Excel qui me dit que le contenu du fichier est différent de celui spécifié par l'extension du fichier (.xls). Il m'autorise à l'ouvrir si je le souhaite. Dans mon cas c'est problématique, car j'exporte le fichier excel dans un répertoire temp avant de faire appel à PKZIP pour le zipper et le copier ailleurs : c'est donc lors du zippage que ce message survient.

Dernière modification par Nyphel (01-08-2008 13:15:49)

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22