Question

Est-ce que quelqu'un sait comment utiliser l'API OO Uno Bridge pour "sélectionner tous" dans une feuille de calcul?

Alternativement, la recherche de la ligne et le numéro de colonne utilisées maximales fonctionnerait.

Ce que je veux faire, c'est appliquer un format à toutes les cellules de la feuille de calcul.

(La raison en est que j'enregistre la feuille en tant que CSV, donc les chiffres ne sont pas enregistrés avec précision à moins que le format ne fournisse suffisamment de décimales.)

Était-ce utile?

La solution

En supposant que vous vous êtes déjà connecté à OpenOffice et document est une feuille de calcul qui a été ouverte ou créée.

#get the sheet you want to work with, I'm just going to grab the first sheet
sheets = document.getSheets().createEnumeration()
sheet = sheets.nextElement()

#start with a range on the first cell
range = sheet.getCellRangeByPosition( 0, 0, 0, 0 )

#expand to full extend of the used area
range.gotoEndOfUsedArea( True ) #true for expand selection

#no do whatever formatting things you want to do

Autres conseils

J'obtiens une erreur (erreur d'attribut) avec la ligne:

gamme.gotoendofusedarea (true)

En combinant les deux informations à 1: http://nab.pcug.org.au/transferdemo_oocalc.pyet 2: https://wiki.openoffice.org/wiki/Documentation/basic_guide/cells_and_ranges

J'ai trouvé la solution suivante:

def getLastActiveCell(sheet):
    """returns the last used column and row of the provided sheet 
    (ie the last cell in the range containing something other than '')"""
    #create a cursor for the whole sheet using OO interface XSheetCellRange 
    cursor = sheet.createCursor()
    #goto the last used cell
    cursor.gotoEndOfUsedArea(True)
    #grab that positions "coordinates"
    address = cursor.RangeAddress
    endcol = address.EndColumn
    endrow = address.EndRow
    #and pass them back
    return endcol,endrow

Vous pouvez ensuite accéder à ces valeurs dans votre code comme ceci:

lastCell = getLastActiveCell(sheetObject)
print lastCell[0] #Column
print lastCell[1] #Row

et créer une gamme

 range = sheetObject.getCellRangeByPosition( 0, 0, lastCell[0], lastCell[1] )

ou peu importe pour plus de travail.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top