Extraire le format d'une cellule Excel

Résolu

Bonjour,

Je cherche à extraire un format de cellule contenant un nombre dans un document .xlsx

avec le module xlrd

J'ai cherché sur le Net, et testé cell_xf_index avec l'option formatting_info=True

dans open_workbook(), mais cela ne fonctionne apparemment pas avec un xlsx,

seulement avec un xls

Si quelqu'un sait faire avec un xlsx

Merci d'avance pour vos réponses


Windows / Edge 113.0.1774.35

4 réponses

  1. Hello,

    La demande concerne Python c'est ça ?

    Dans ce cas, voilà une piste :

    import openpyxl
    
    # ouvrir le fichier Excel
    wb = openpyxl.load_workbook('mon_fichier.xlsx')
    
    # sélectionner une feuille de calcul
    ws = wb['ma_feuille']
    
    # accéder à une cellule et récupérer sa valeur
    cell_value = ws['A1'].value
    
    # afficher la valeur de la cellule
    print(cell_value)
    

    En sachant que le module xlrd ne prend pas en charge le format xlsx de manière native et qu'il faut installer la bibliothèque openpyxl

    Source: https://openpyxl.readthedocs.io/en/stable/


    1. Bonjour Ozone et merci de ta réponse

      En fait, j'ai une cellule contenant un nombre et je veux récupérer, non pas le contenu de la cellule

      mais son format, tel qu'il a été initialisé dans Excel lorsque l'on fait

      clic-droit -> format de cellule -> nombre -> 2 chiffres décimaux

      Mais j'avais bien posté cette demande dans le forum Python, non ?

      Que fait-il dans bureautique\Excel ?

      1. Est-ce que ceci peut aider :

        https://openpyxl.readthedocs.io/en/stable/styles.html#number-formats

        Avec un script qui peut ressembler à :

        import openpyxl
        
        # Ouvrir le fichier Excel
        workbook = openpyxl.load_workbook('mon_fichier.xlsx')
        
        # Sélectionner la feuille de calcul
        worksheet = workbook['ma_feuille']
        
        # Récupérer la cellule à une position donnée
        cell = worksheet.cell(row=1, column=1)
        
        # Récupérer le format de la cellule
        cell_format = cell.number_format
        
        # Afficher le format de la cellule
        print(cell_format)

        1. Bonjour,

          Je vois que mon message a été replacé dans le forum Python, où je l'avais créé au départ

          Quelqu'un l'avait déplacé dans le forum bureautique, dans lequel, personnellement, je ne vais jamais

          Ozone, je vais tester ton code ...

          Un peu décevant quand même (je voulais retrouver nombre, 2 décimales, comme initialisé dans la feuille) :

          Je me demande si il est vraiment possible de faire ce que je demande ...