Quoi, tu ne connais pas PB ? Va falloir parcourir tout le forum alors !

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