Bonjour à tous,
J'ai un problème lors de la lecture d'un fichier Excel.
Dans un premier temps je créer le contenu d'une liste déroulante (dans une interface) en prenant ce qu'il y a dans la première colonne du fichier Excel :
Puis, après sélection du contenu de la liste déroulante, je viens rechercher dans le fichier Excel cette sélection, et afficher sur l'interface (à l'aide d'un static text) le contenu de la cellule à droite de la cellule contenant la sélection :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 [~,txt,~] = xlsread('Database.xlsx','Feuil1','A:A'); % lecture du fichier Excel set(handles.popupmenu1,'String',txt); % création de la liste déroulante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 contents=get(handles.popupmenu1,'String'); selection = contents{get(handles.popupmenu1,'Value')}; % selection contient le choix sélectionné dans la liste déroulante [row,col] = find (cellfun('length',regexp(txt,selection)) == 1); % recherche de la position de la cellule qui contient la sélection dans le tableau Excel ligne = num2str(row); Alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; letter = Alphabet(col+1); % transformation du numéro de colonne en lettre pour pouvoir faire une recherche dans le tableau Excel cellule = [letter,ligne]; % création de la position où il y a la recherche qu'on veut afficher [~,txt,~] = xlsread('Database.xlsx', onglet ,cellule); % lecture de la recherche que l'on souhaite set(handles.text2,'String',txt); % écriture dans un static text
Cela marche dans 75% des cas mais parfois le contenu de 'row' n'est pas bon.. Par exemple, au lieu de me pointer la 3 ème ligne de l'excel (ou il y a la sélection que l'on recherche) il me pointe la 4ème ligne de l'excel ou il n'y a rien dedans..
Avez-vous une idée d'où cela peut venir ?
PS : Matlab me retourne également une erreur car row et col sont "Empty matrix: 0-by-1"
Merci
Partager