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 OBasicOBasic : Traitement de texteLes tableaux dans le traitement de texte (4)
précédent sommaire suivant
 

La procédure ajoute un tableau dans le document puis remet en forme les cellules.

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
Sub InsertionTableauWriter 
  Dim oDoc As Object , oText As Object , oCurseur As Object 
  Dim oTable As Object 
  Dim NumLigne As Integer , NimColonne As Integer 
  Dim Cellule As Object 
  Dim Tcs() 
  
  oDoc = ThisComponent 
  oText = oDoc.getText()  
  oCurseur = oText.createTextCursor()  
  
  '--- création tableau ---   
  oTable = oDoc.createInstance( "com.sun.star.text.TextTable" )  
  'Définit les dimensions du tableau: 
  'Table de 5 colonnes et 20 lignes 
  oTable.initialize( 20 , 5 ) 
  'Insertion du tableau dans le document, à l'emplacement du curseur  
  oText.insertTextContent( oCurseur, oTable, False )  
  '----------------------- 
  
  '--- Modifie la largeur de la 1ere colonne --- 
  Tcs = oTable.TableColumnSeparators  
  Tcs(0).Position = 1000  
  oTable.TableColumnSeparators = Tcs()  
  '---------------------------------------------
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
35
36
37
38
39
  
  'Boucle sur les cellules du tableau pour la mise en forme 
  For NumLigne = 0 To oTable.Rows.getCount() - 1  
    For NumColonne = 0 To oTable.Columns.getCount() - 1  
  
      'Définit la cellule du tableau    
      Cellule = oTable.getCellByPosition( NumColonne, NumLigne )  
  
      'Modifie la couleur de fond de la cellule     
      Cellule.BackColor = RGB( 235 , 235 , 125 )  
  
      oText = Cellule.getText()  
      oCurseur = oText.createTextCursor() 
  
      'Spécifie l'alignement des données dans la cellule 
      'oCurseur.paraAdjust = com.sun.star.style.ParagraphAdjust.RIGHT 
      oCurseur.paraAdjust = com.sun.star.style.ParagraphAdjust.CENTER 
      'oCurseur.paraAdjust = com.sun.star.style.ParagraphAdjust.LEFT 
  
      'Applique une mise en forme particulière dans la 1ere colonne 
      If NumColonne = 0 Then 
        oCurseur.setPropertyValue("CharRotation", 900) 'Rotation 900 = 90° 
        oCurseur.CharColor = RGB(255,0,0) 'couleur des caractères 
        oCurseur.CharHeight = 8 'Taille catactères 
        oCurseur.CharWeight = com.sun.star.awt.FontWeight.BOLD 'gras 
        oCurseur.CharPosture = com.sun.star.awt.FontSlant.ITALIC 'italique 
        oCurseur.CharFontName = "Arial" 'Font 
        oCurseur.CharUnderline = _ 
          com.sun.star.awt.FontUnderline.SINGLE 'souligné simple 
        oCurseur.CharBackcolor = RGB(0,0,0) 'couleur de fond du texte 
      End If 
  
      'Insère du texte dans la cellule   
      oText.insertString( oCurseur, "C" & NumColonne + 1 & "/R" & _ 
        NumLigne + 1 , False )  
  
    Next NumColonne 
  Next NumLigne  
End Sub

Mis à jour le 27 août 2013 SilkyRoad

Cet exemple montre comment ajouter une ligne à la 5eme ligne du premier tableau.

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
Sub AjoutLignesTableau  
  Dim oTable As Object , Lignes As Object 
  
  'Spécifie le 1er tableau du document 
  oTable = ThisComponent.TextTables.getByIndex(0)  
  
  Lignes = oTable.getRows() 
  'Ajoute une ligne à la 5eme ligne 
  'insertByIndex(numéro de ligne pour l'insertion , nombre de lignes à insérer) 
  'L'index de la 1ere ligne = 0  
  Lignes.insertByIndex(4, 1) 
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
14
15
16
17
18
19
20
21
Sub PositionTableau_NumeroPage  
  Dim oDoc As Object , oCurseur As Object , oTable As Object 
  Dim oVueCurseur As Object 
  Dim NumPage As Integer 
  
  oDoc = ThisComponent   
  oVueCurseur = oDoc.CurrentController.ViewCursor 
  
  'getByIndex(2) correspond au 3eme tableau dans le document 
  oTable = oDoc.TextTables.getByIndex(2) 
  'Pour spécifier un tableau à partir de son nom, utilisez:  
  'oTable = oDoc.TextTables.getByName("LeNom")  
  
  oCurseur = oTable.getCellByName("A1").createTextCursor  
  
  oVueCurseur.gotoRange(oCurseur, FALSE) 
  
  NumPage = oVueCurseur.getPage  
  MsgBox "Le Tableau est sur la page: " & NumPage  
  
End Sub

Mis à jour le 2 août 2013 SilkyRoad

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
Sub InsertionImage_Dans_TableauWriter 
  Dim oTable As Object , oImage As Object 
  Dim Cellule As Object , Texte As Object , Curseur As Object 
  
  '--- Définit l'image qui va être insérée dans la cellule du tableau --- 
  oImage = ThisComponent.createInstance( "com.sun.star.text.GraphicObject" )  
  'Nécessite d'être connecté à internet 
  oImage.GraphicURL = "http://www.developpez.com/template/logo.gif"  
  oImage.AnchorType = com.sun.star.text.TextContentAnchorType.AS_CHARACTER  
  '--- 
  
  'getByIndex(0) correspond au 1er tableau dans le document 
  oTable = ThisComponent.TextTables.getByIndex(0) 
  
  'Définit la première cellule dans le tableau  
  Cellule = oTable.getCellByPosition(0,0)  
  
  Texte = Cellule.getText()  
  Curseur = Texte.createTextCursor()  
  Texte.insertTextContent( Curseur , oImage , False )  
  
End Sub

Mis à jour le 2 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 © 2017 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.

 
Responsable bénévole de la rubrique OpenOffice & LibreOffice : zoom61 -