Par défaut Récupérer la valeur d'une cellule Excel
Résolu/Fermé
subb73
Messages postés
11
Date d'inscription
dimanche 3 janvier 2010
Statut
Membre
Dernière intervention
27 décembre 2021
-
26 déc. 2021 à 22:53
Steph2V - 9 sept. 2022 à 23:10
Steph2V - 9 sept. 2022 à 23:10
A voir également:
- Par défaut Récupérer la valeur d'une cellule Excel
- Aller à la ligne dans une cellule excel - Guide
- Excel cellule couleur si condition texte - Guide
- Liste déroulante excel - Guide
- Verrouiller cellule excel - Guide
- Recuperer message whatsapp supprimé - Guide
4 réponses
subb73
Messages postés
11
Date d'inscription
dimanche 3 janvier 2010
Statut
Membre
Dernière intervention
27 décembre 2021
1
27 déc. 2021 à 01:02
27 déc. 2021 à 01:02
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)
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
26 déc. 2021 à 23:05
26 déc. 2021 à 23:05
Bonjour,
L'idée... serait de regarder la documentation.
Par exemple on y trouve
https://openpyxl.readthedocs.io/en/stable/usage.html#read-an-existing-workbook
L'idée... serait de regarder la documentation.
Par exemple on y trouve
from openpyxl import load_workbook wb = load_workbook(filename = 'empty_book.xlsx') sheet_ranges = wb['range names'] print(sheet_ranges['D18'].value)
https://openpyxl.readthedocs.io/en/stable/usage.html#read-an-existing-workbook
subb73
Messages postés
11
Date d'inscription
dimanche 3 janvier 2010
Statut
Membre
Dernière intervention
27 décembre 2021
1
27 déc. 2021 à 00:31
27 déc. 2021 à 00:31
Hélas, je suis vraiment novice en Python.
Dans la ligne :
j'aimerais remplacer "D18" par le nom de la cellule ou son adresse mais je ne trouve pas...
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...
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
27 déc. 2021 à 00:34
27 déc. 2021 à 00:34
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.
Dans ce cas tu devrais pouvoir directement lui appliquer la méthode value.
my_range.value
subb73
Messages postés
11
Date d'inscription
dimanche 3 janvier 2010
Statut
Membre
Dernière intervention
27 décembre 2021
1
27 déc. 2021 à 00:42
27 déc. 2021 à 00:42
Lorsque je mets :
j'obtiens l'adresse et pas la valeur :
[<Cell 'Feuil1'.I17>]
Feuil1!$I$17
print (my_range.value)
j'obtiens l'adresse et pas la valeur :
[<Cell 'Feuil1'.I17>]
Feuil1!$I$17
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
27 déc. 2021 à 01:03
27 déc. 2021 à 01:03
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
Modifié le 9 sept. 2022 à 23:23
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)