IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo

FAQ LibreOffice et Apache OpenOfficeConsultez toutes les FAQ

Nombre d'auteurs : 10, nombre de questions : 359, dernière mise à jour : 15 juillet 2017  Ajouter une question

 

Bienvenue sur la FAQ, elle a été réalisée pour répondre aux questions concernant les suites bureautiques Apache OpenOffice (AOO) et LibreOffice (LibO).

Si vous souhaitez participer pour l'améliorer, pour proposer vos contributions ou si vous constatez des erreurs dans cette page, n'hésitez-pas !!! Participez.

SommaireProgrammation OBasicLes filtres (5)
précédent sommaire suivant
 

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Sub ListerFiltresConversion() 
Dim oDesktop As Object , oDoc As Object  
Dim Fichier As String 
Dim Args() 
Dim filtresFact As Object 
Dim nomFiltres As Variant 
Dim i As Integer 
  
'-------- 
oDesktop = createUnoService("com.sun.star.frame.Desktop") 
Fichier = "private:factory/scalc" 
'Création d'un nouveau tableur pour lister le résultat de la macro 
oDoc = oDesktop.LoadComponentFromURL(Fichier, "_blank", 0, Args()) 
  
'Spécifie la 1ère feuille du classeur 
Feuille = oDoc.getSheets.getByIndex(0) 
'-------   
  
'--- Liste les filtres ---    
filtresFact = createUnoService( "com.sun.star.document.FilterFactory" ) 
  
  nomFiltres = filtresFact.getElementNames() 
  For i = LBound(nomFiltres) To UBound(nomFiltres) 
    Feuille.getCellByPosition( 0 , i ).String = nomFiltres( i ) 
  Next 
'------------------------- 
  
'--- Ajuste la taille de la colonne en fonction du contenu --- 
Feuille.Columns(0).OptimalWidth = true  
'------------------------------------------------------------- 
End Sub

Mis à jour le 2 août 2013 SilkyRoad

Le classeur doit être préalablement sauvegardé au format natif.
L'exemple va créer un copie au format PDF dans le même répertoire. Si le classeur contient plusieurs onglets, ils seront tous enregistrés, à la suite, dans le même fichier PDF.

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Sub Convertir_Calc_Vers_PDF 
dim ArgsProprietes(2) as new com.sun.star.beans.PropertyValue  
dim Fichier as string  
dim oDoc as object  
  
'--- Le fichier Tableur doit être préalablement enregistré --- 
'sinon .URL renvoie une chaîne vide. 
'---------------------------------------------------------- 
  
'Indique le nom de la sauvegarde au format pdf. 
'(Le fichier PDF sera créé dans le même répertoire que le tableur.) 
Fichier = _ 
  Left( ThisComponent.URL , Len(ThisComponent.URL) - 4 ) & ".pdf" 
  
'--- Sauvegarde les modifications dans le classeur --- 
ThisComponent.Store 
  
'--- Spécifie le filtre de conversion --- 
ArgsProprietes(0).Name = "FilterName"  
ArgsProprietes(0).Value = "calc_pdf_Export"  
ArgsProprietes(1).Name = "CompressMode" 
ArgsProprietes(1).Value = 1  
  
'--- Crée une copie de sauvegarde au format PDF --- 
'Remarque : Tous les onglets non vides sont enregistrés à la suite, dans le 
'même fichier PDF.   
ThisComponent.storeToUrl( Fichier , ArgsProprietes())  
End Sub

Mis à jour le 26 août 2013 SilkyRoad

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub Conversion_Impress_Flash  
  Dim ArgsProprietes(1) As new com.sun.star.beans.PropertyValue  
  Dim Fichier As String 
  
  Fichier = ConvertToURL( "C:\leFichier.swf" )  
  
  '--- Spécifie le filtre de conversion --- 
  ArgsProprietes(0).Name = "FilterName"  
  ArgsProprietes(0).Value = "impress_flash_Export"  
  
  '--- Crée une copie de sauvegarde au format Flash (.swf)  --- 
  ThisComponent.storeToUrl( Fichier , ArgsProprietes())  
End Sub

Mis à jour le 2 août 2013 SilkyRoad

Dans la version 1.x, les documents texte étaient créés au format .sxw.
Ces formats sont toujours utilisables dans la version 2.x mais vous pouvez aussi les convertir aux formats .odt qui sont le nouveau standard OpenDocument:

Pour effectuer la conversion d'un ou plusieurs documents :

  • menu Fichier ;
  • Assistants ;
  • Convertisseur de documents ;
  • sélectionnez les types de documents à convertir :
  • cochez l'option « StarOffice », puis les « Documents texte » et « Classeurs »,
  • cliquez sur le bouton « Suivant » :
    • décochez ou cochez les options qui vous intéressent dans la nouvelle fenêtre et paramétrez les différentes
  • zones d'information :
    • le champ « Import depuis: » correspond au dossier contenant les fichiers à convertir,
    • le champ « enregistrer dans: » correspond au dossier de destination pour les nouveaux fichiers convertis,
    • cliquez sur le bouton « Suivant » ;

    la fenêtre de paramétrage s'affiche une nouvelle fois si vous avez choisi de convertir plusieurs types de fichiers (Documents texte et Classeurs) ;
    cliquez sur le bouton « Suivant » ;
    cliquez sur le bouton « Convertir » pour lancer l'opération ;
    cliquer sur le bouton « Fermer » dans la boite de dialogue ;
    ouvrez le répertoire de destination que vous avez précédemment indiqué afin de visualiser le résultat de la conversion.


Vous pouvez aussi effectuer les conversions par macro:
cet exemple ouvre un fichier sxw et le convertit au format odt.
Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Sub Conversion_SXW_Vers_ODT 
  Dim Cible As String , CibleURL As String 
  Dim Fichier As Object 
  Dim Args(0) As New com.sun.star.beans.PropertyValue 
  Dim Args2(2) As New com.sun.star.beans.PropertyValue 
  
  'Les arguments pour masquer le fichier pendant le traitement    
  Args(0).Name = "Hidden" 'nom de l'argument 
  Args(0).Value = True 'valeur de l'argument 
  
  Cible = "C:\essai.sxw" 
  
  'Adresse au format URL, du document sxw à convertir	 
  CibleURL = convertToURL(Cible) 
  'Ouverture du document sxw 
  Fichier = StarDesktop.LoadComponentFromURL( CibleURL , "_blank", 0 , Args() ) 
  
  'Modification de l'adresse en .odt 
  CibleURL = convertToURL( left( Cible, len(Cible)-3 ) + "odt" ) 
  
  'Les arguments pour enregistrer le document en .odt			 
  Args2(0).Name = "URL" 
  Args2(0).Value = CibleURL 
  Args2(1).Name = "FilterName" 
  Args2(1).Value = "writer8" 
  Args2(2).Name = "SelectionOnly" 
  Args2(2).Value = True 
  
  'Sauvegarde du fichier  
  Fichier.storeAsURL( CibleURL , Args2() ) 
  
  'Fermeture 
  Fichier.Close( True )	 
End Sub

Mis à jour le 26 août 2013 SilkyRoad

L'exemple boucle sur les feuilles du classeur et enregistre chacune au format CSV, dans le même répertoire que le fichier original.
Le classeur original est supposé déjà enregistré sur le disque.

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Dim oDoc As Object  
Dim i As Integer  
Dim EnrArgs(1) As New com.sun.star.beans.PropertyValue  
Dim Chemin As String , NomFeuille As String  
  
oDoc = ThisComponent  
  
' Boucle sur les feuilles  
For i = 1 to oDoc.Sheets.Count  
   NomFeuille = oDoc.Sheets(i-1).Name  
  
   ' Active la feuille  
   ThisComponent.CurrentController.ActiveSheet = oDoc.Sheets(i-1)     
  
   Chemin = Left(oDoc.URL, Len(oDoc.URL) -  Len(Dir(ConvertFromURL(oDoc.URL)))  
  
	'--- Spécifie le filtre de conversion --- 
	EnrArgs(0).Name = "FilterName"  
	EnrArgs(0).Value = "Text - txt - csv (StarCalc)"  
  
   ' Sauvegarde dans le même répertoire que le classeur original  
   oDoc.storeToURL( ConvertToURL(Chemin & NomFeuille & ".csv"), EnrArgs()) 
  
Next

Mis à jour le 26 août 2013 SilkyRoad

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2021 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.