Requêtes sur cellules

From Apache OpenOffice Wiki
< FR‎ | Documentation‎ | BASIC Guide‎ | Spreadsheets
Revision as of 08:41, 8 September 2015 by Oooforum (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


Editing.pngCette page est à un stade de PROJET et nécessite votre aide pour sa traduction.

Les cellules, plage de cellules et collection de plages de cellules peuvent être requêtées sur certains contenus en passant par le service com.sun.star.sheet.SheetRangesQuery. Il implémente une interface de requête avec des propriétés spécifiques.

The methods of the interface com.sun.star.sheet.XCellRangesQuery search for cells with specific contents or properties inside of the given cell range. The methods of the interface com.sun.star.sheet.XFormulaQuery search for cells in the entire spreadsheet that are reference to or are referenced from formula cells in the given range.

Query sheet ranges
Documentation caution.png A cause d'une bogue, les méthodes queryPrecedents() et queryDependents() de l'interface com.sun.star.sheet.XFormulaQuery entraîne une boucle sans fin en mode récursif si le paramètre bRecursive est à vrai.

All methods return the interface com.sun.star.sheet.XSheetCellRanges of a cell range collection. Cell range collections are described in the chapter Cell Ranges and Cells Container.

Méthodes de com.sun.star.sheet.XCellRangesQuery
queryVisibleCells() Retourne les cellules qui ne sont pas cachées.
queryEmptyCells() Returne les cellules qui n'ont aucun contenu.
queryContentCells() Returne les cellules qui ont un contenu décrit dans le paramètre défini par com.sun.star.sheet.CellFlags.
queryFormulaCells() Retourne les cellules ayant des formules suivant le paramètre défini par com.sun.star.sheet.FormulaResult.
queryColumnDifferences() Retourne les cellules de la plage qui ont un contenu différent de celle dans la même colonne et d'une ligne spécifiée. Voir exemple ci-dessous.
queryRowDifferences() Retourne les cellules de la plage qui ont un contenu différent de celle dans la même ligne et d'une colonne spécifiée.
queryIntersection() Returns all cells of the range that are contained in the passed range address.


Exemple:

A B C D E F G
1
1
1
2
2
1
2
2
3
1
2
1
4
1
1
1

La plage passée en requête est A1:C4 et l'adresse de la cellule utilisée est B2.

  • queryColumnDifferences(): (the row number is of interest) The cells of column A are compared with cell A2, the cells of column B with B2 and so on. The function returns the cell range list B1:B1, B4:B4, C3:C4.
  • queryRowDifferences(): (the column index is of interest) The function compares row 1 with cell B1, row 2 with cell B2 and so on. It returns the cell range list C1:C1, A2:A2, A3:A3, C3:C3.

The following code queries all cells with text content:

 // --- Cell Ranges Query ---
 // query addresses of all cells containing text
 com.sun.star.sheet.XCellRangesQuery xRangesQuery = (com.sun.star.sheet.XCellRangesQuery)
     UnoRuntime.queryInterface(com.sun.star.sheet.XCellRangesQuery.class, xCellRange);
 
 com.sun.star.sheet.XSheetCellRanges xCellRanges =
     xRangesQuery.queryContentCells((short)com.sun.star.sheet.CellFlags.STRING);
 System.out.println("Cells containing text: " + xCellRanges.getRangeAddressesAsString());
Personal tools