Par défaut Récupérer la valeur d'une cellule Excel

Résolu
subb73 Messages postés 11 Statut Membre -  
 Steph2V -
Bonjour à tous,

Je souhaite récupérer la valeur d'une cellule d'un fichier Excel à partir de son nom :


import openpyxl
wb=openpyxl.load_workbook('Test.xlsm')
my_range = wb.defined_names['NOM_CELLULE']

print (my_range.attr_text)


la variable "my_range.attr_text" me renvoie l'adresse de la cellule mais je souhaiterai récupérer la valeur de la cellule.

Si quelqu'un a une idée..

4 réponses

  1. subb73 Messages postés 11 Statut Membre 1
     
    Le code suivant me donne bien la valeur de la cellule nommée "SECOND" ; ça marche mais j'imagine qu'il doit y avoir plus simple ...

    import openpyxl
    wb=openpyxl.load_workbook('Test.xlsm')

    my_range = wb.defined_names['SECOND']
    dests = my_range.destinations

    cells = []
    for title, coord in dests:
    ws = wb[title]
    cells.append(ws[coord])

    print(wb['Feuil1'][coord].value)
    1
    1. Steph2V
       

      bonjour, je n'ai pas trouvé mieux que ça (faire une fonction qui renvoie la valeur au pire) !

      import openpyxl

      wb = openpyxl.load_workbook('lefichier.xlsx')

      dest = wb.defined_names['nomCellule'].destinations

      for sheetName, coord in dest:

          print(wb[sheetName][coord].value)  

      0
  2. subb73 Messages postés 11 Statut Membre 1
     
    Hélas, je suis vraiment novice en Python.

    Dans la ligne :

    print(sheet_ranges['D18'].value)


    j'aimerais remplacer "D18" par le nom de la cellule ou son adresse mais je ne trouve pas...
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Si, dans ton cas, la variable sheet_ranges n''est qu'une seule cellule...
      Dans ce cas tu devrais pouvoir directement lui appliquer la méthode value.
      my_range.value
      0
  3. subb73 Messages postés 11 Statut Membre 1
     
    Lorsque je mets :

    print (my_range.value)


    j'obtiens l'adresse et pas la valeur :

    [<Cell 'Feuil1'.I17>]
    Feuil1!$I$17
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Apres une petite recherche.. essaie ce code (en remplaçant par tes variables)
      wb = openpyxl.load_workbook(excel_file_name) 
      rng = wb.get_named_range(name_of_range).destinations[0]
      sheet = rng[0]
      address = rng[1].replace('$','')
      val = sheet[address].value
      0