[Résolu] Lire et ecrire dans un xls

  • Auteur de la discussion Der43e
  • Date de début
D

Der43e

Membre
Inscrit
29 Avril 2016
Messages
40
Points
0
  • #1
Bonjour a tous, voila j'ai développer une application qui me permet d’écrire différent choses dans un fichier XLS avec POI Apache,

mais maintenant je voudrait dans une activity reprendre mon fichier xls, lire et afficher le contenue (ligne par ligne) ans un listeview, sélectionnable, et apres avoir choisis une ou plusieurs lignes ecrire a la suite de la ligne selectionner (dans une cellule donnée) un texte...

voici ce a quoi cela devrait ressembler:

S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !


a savoir que le fichier a un nombre de ligne variable et que en gros si la ligne 2 est cocher et que l'on presse le boutton "valider la quitance" je voudrait que dans la cellule D2 il vienne s’écrire "quitancé"

voila je ne vous demande bien entendu pas de faire mon code mais avez vous une idée de quelle serait la technique pour faire cela?

Merci d'avance et surtout n'hesiter pas a me demander si vous n’avez pas compris ma demande!!

PS: désoler de pointer mon image chez la consurence :lol:
 
Valentin

Valentin

Moderateur Global
Inscrit
20 Février 2013
Messages
10 674
Points
48
  • #2
Re: Lire et ecrire dans un xls

Salut,

donc tu veux pouvoir écrire à la suite d'un élément dans ton fichier xls c'est bien ça ?
Regarde les fonction fseek.
 
D

Der43e

Membre
Inscrit
29 Avril 2016
Messages
40
Points
0
  • #3
Re: Lire et ecrire dans un xls

Salut et merci beaucoup pour ta réponse rapide!!

Alors effectivement je veux pouvoir écrire a la suite d'une ligne spécifique (celle sélectionner), donc je cherche déjà

1: lire le fichier et afficher toutes les lignes existantes en les placent toutes dans leurs propre items d'une listeview (ma difficulté a le faire et du que le fichier a un nombre de ligne variable...) car sur l'image c'est uniquement du texte taper a la main pour facilité la compréhension et non pas le contenue de mon fichier

2: de savoir la ou les quelles ont été sélectionnée (sélection de la ligne comme sur l'image) et clique sur mon bouton.

3: écrire a la suite de la ou les lignes sélectionner (cellule défini toujours la même cellule mais sur les ligne sélectionner.)

par ce que écrire a la ligne a chaque clique je sais comment faire mais le faite d'afficher, de trouver le numéro de ligne qui a été sélectionner et écrire a la suite de celle si sans supprimer les lignes qui serait déjà écrite je ne sais pas encore comment m'y prendre ...

je sais c'est une question qui en regroupe plusieurs mais les poser séparément n'est pas très claire pour ceux qui voudrait m'aider...)

je vais m'informer sur la fonction que tu m'as fournie je te remercie!!

PS: je précise que je suis débutant en programmation donc si j'ai des question bête c'est normal ;-)

Merci d'avance
 
A

Anonymous

  • #4
Re: Lire et ecrire dans un xls

Salut tout le monde,

Euh... fseek() c'est une fonction de la librairie C Unix (Linux, Android...) qui permet de se positionner dans un fichier à une adresse particulière (N caractères depuis le début / la fin / la dernière position).
C'est très bien pour des fichiers "à plat" mais les fichiers XLS sont des fichiers Excel structurés, avec un format interne assez peu documenté (à ma connaissance). Donc je pense qu'il est difficile de dire "je veux écrire dans la cellule B-10 donc je vais aller à tel offset (adresse) dans le fichier". On n'en sait rien, ou alors il faut faire tout le "reverse engineering" du format d'un fichier Excel.

Moyennant quoi il est sans doute indispensable de passer par une API (une librairie) qui connaît le format des fichiers Office et sait les manipuler directement avec des fonctions de haut niveau (du genre : goto_cell("B",10) -- j'ai inventé le nom, juste un exemple)
De telles librairies existent par exemple pour Perl sous Linux (j'en ai utilisé).
Sous Android, je n'en sais rien mais je suppose qu'il doit y avoir des classes Java pour faire ça. Sont-elles gratuites, ça c'est un autre problème.
 
Valentin

Valentin

Moderateur Global
Inscrit
20 Février 2013
Messages
10 674
Points
48
  • #5
Re: Lire et ecrire dans un xls

Merci à toi Coredump pour cette précision :wink:

Essaye d'abord d'essayer de lire le fichier XLS simplement. une fois que tu auras réussi la tu pourras le mettre dans ta listView.
Grosso modo ça ressemblera à ça :

PHP:
S'il vous plaît, Connexion ou S'inscrire to view codes content!
 
D

Der43e

Membre
Inscrit
29 Avril 2016
Messages
40
Points
0
  • #6
Re: Lire et ecrire dans un xls

@ coredump

Merci pour ton intervention et oui effectivement pour l’écriture de mon fichier dans mes autres activity j'utilise l'API POI Apache qui fonctionne très bien.

@Valentin

effectivement je voyais la chose comme cela mais maintenant comment faire un tableau si je ne sais pas a l'avance le nombre de ligne que contiendra mon fichier?

et une fois mise dans mon tableau comment faire pour savoir la quelle l'utilisateur aura sélectionner?

Merci d'avance
 
Valentin

Valentin

Moderateur Global
Inscrit
20 Février 2013
Messages
10 674
Points
48
  • #7
Re: Lire et ecrire dans un xls

Il me semble que lorsque tu appuieras sur une des case, cela appellera une fonction qui aura l'id de la case en paramètre.
C'est assez simple finalement.
 
D

Der43e

Membre
Inscrit
29 Avril 2016
Messages
40
Points
0
  • #8
Re: Lire et ecrire dans un xls

Bon j'ai fait de l'avance en me basent sur un tuto trouver sur le net j'arrive désormais a lire mon fichier grâce au code suivent:

Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

Donc mes données s'affiche bien dans le Toast les une après les autres,

seulement maintenant je voudrait pouvoir les "stocker" dans une array et la j'ai un peut de la peine.. comment faire pour créer un tableau si je ne connais pas a l'avance le nombre de ligne qu'il contiendra? et puis après comment le remplir comme il ce doit?

merci d'avance pour votre aide!!
 
Valentin

Valentin

Moderateur Global
Inscrit
20 Février 2013
Messages
10 674
Points
48
  • #9
Re: Lire et ecrire dans un xls

Tu créés la ListView dans la partie graphique XML.

Ensuite regarde mon code plus haut, tu crées ton tableau de données
PHP:
S'il vous plaît, Connexion ou S'inscrire to view codes content!
Ensuite ajoute la fonction d'ajout d'une donnée dans ton tableau dans ton 2ème while (tu peux enlever ton toast et log)
PHP:
S'il vous plaît, Connexion ou S'inscrire to view codes content!
Puis tu peux ajouter ton tableau dans le listView créé
PHP:
S'il vous plaît, Connexion ou S'inscrire to view codes content!
 
D

Der43e

Membre
Inscrit
29 Avril 2016
Messages
40
Points
0
  • #10
Re: Lire et ecrire dans un xls

Alors ce système marche parfaitement seulement voila je ne me retrouve que avec la dernière valeur présente dans mon fichier...

voici mon code:

Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

comment faire pour que la ligne
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!
ne supprime pas la dernier mais la rajoute...?
une ligne comme ceci serait envisageable?
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!
comment définir l'emplacement de ce que je rajoute?

Merci d'avance
 
Valentin

Valentin

Moderateur Global
Inscrit
20 Février 2013
Messages
10 674
Points
48
  • #11
Re: Lire et ecrire dans un xls

Tu as tout mis dans le while ?

Dans le while ne met que
PHP:
S'il vous plaît, Connexion ou S'inscrire to view codes content!
Sinon tu écrases ce qui a été écrit.
 
D

Der43e

Membre
Inscrit
29 Avril 2016
Messages
40
Points
0
  • #12
Re: Lire et ecrire dans un xls

Pff parfait c’était effectivement bien sa!! merci beaucoup valantin!!

du coup je profite de ton savoir,

je voudrait afficher sur une seul ligne de mon listview 11 éléments entrer, et tous les 11 passer a un autres items tout en affichant les 11 premier aurais tu une idées de comment procéder??

Merci d'avance!
 
Valentin

Valentin

Moderateur Global
Inscrit
20 Février 2013
Messages
10 674
Points
48
  • #13
Re: Lire et ecrire dans un xls

Der43e a dit:
Pff parfait c’était effectivement bien sa!! merci beaucoup valantin!!
Valentin et non Valantin :wink: :lol:


Tu veux qu'il y ait 11 lignes dans un seul item de la listView ?
Si tu les met à la suite, cela ne fonctionne pas ?
 
D

Der43e

Membre
Inscrit
29 Avril 2016
Messages
40
Points
0
  • #14
Re: Lire et ecrire dans un xls

oh Mer de excuse moi j'estropie ton nom en plus...

alors oui effectivement je voudrait afficher 11 éléments par items dans ma liste view je m'explique,

dans mon fichier excel que je lis pour remplir mon arraylist, j'ai des lignes qui comporte (toujours) 11 cellules et du coup je voudrait pouvoir afficher une ligne entiere et pas une cellule par items!

je ne sais pas si j'ai été assez claire n’hésite pas a me demander si ce n'est pas le cas!
 
Valentin

Valentin

Moderateur Global
Inscrit
20 Février 2013
Messages
10 674
Points
48
  • #15
Re: Lire et ecrire dans un xls

Avant tout, le findViewById tu peux le mettre au tout début, avant la fonction onCreate.

Si tu fais un truc du genre dans le while
PHP:
S'il vous plaît, Connexion ou S'inscrire to view codes content!
En gros tu créé un autre tableau qui contiendra les 11 lignes et à chaque fois tu vérifies dans une condition tout les 11 lignes.
Et à la fin, tu met ce tableau dans ton tableau final, le ArrayFichier.

Dis moi si ça fonctionne.
 
D

Der43e

Membre
Inscrit
29 Avril 2016
Messages
40
Points
0
  • #16
Re: Lire et ecrire dans un xls

Alors c'est presque parfait, mais la çà m'affiche toute la ligne mais tous le temps la première...

je vais chercher aussi de mon coté ;-)

alors après deux trois teste j'ai remarqué que si ke met mon
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!
en dehors de mes deux wihle j'ai la premier ligne afficher partout, si je le met dans mon permier wihle
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

j'ai bien la premier ligne a un seul endrois mais les autres sont tous vide et si je le met dans mon deuxieme wihle
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!
je n'ai que des ligne vide (enfain il est afficher [] dans mes lignes)

je cherche encore!
 
Valentin

Valentin

Moderateur Global
Inscrit
20 Février 2013
Messages
10 674
Points
48
  • #17
Re: Lire et ecrire dans un xls

Pourrais tu mettre ton code en entier afin de mieux visualiser ?
 
D

Der43e

Membre
Inscrit
29 Avril 2016
Messages
40
Points
0
  • #18
Re: Lire et ecrire dans un xls

Bien sur, alors avec ce code ci j'ai la première ligne afficher partout!

Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!
 
Valentin

Valentin

Moderateur Global
Inscrit
20 Février 2013
Messages
10 674
Points
48
  • #19
Re: Lire et ecrire dans un xls

ta variable counter a été déclarée ?
Par contre elle n'est jamais remis à zéro. Il faut la remettre à zéro dans le else.
 
D

Der43e

Membre
Inscrit
29 Avril 2016
Messages
40
Points
0
  • #20
Re: Lire et ecrire dans un xls

oh mais tu est un chef!

alors oui mon counter est déclarer plus haut mais le faite de le mettre à 0 dans le else a régler mon problème!


bon du coup je profite de toi mais dit moi si tu en as marre ;-)

je voudrait maintenant que après avoir sélectionner une ou de plusieurs des ligne je clique sur un bouton et que dans sont listener j’écrive dans mon fichier excel a la ligne choisis dans une cellule défini!

exemple je coche la ligne numéro deux je clique sur le bouton ok et dans ma ligne deux a la cellule 10 je vienne écrire simplement ok.

Merci beaucoup d'avance
 
Valentin

Valentin

Moderateur Global
Inscrit
20 Février 2013
Messages
10 674
Points
48
  • #21
Re: Lire et ecrire dans un xls

Actuellement tu as un système de case à cocher ?

Essaye déjà cette simple fonction lors d'un appuie sur un item
PHP:
S'il vous plaît, Connexion ou S'inscrire to view codes content!
 
D

Der43e

Membre
Inscrit
29 Avril 2016
Messages
40
Points
0
  • #22
Re: Lire et ecrire dans un xls

Oui exactement:

Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

Ok je vais tester cela! au-faite, c'est sensé faire quoi ces ligne je n'arrive pas a les décrypter...?

juste que je sache ce que je fait! :lol:

Merci
 
Valentin

Valentin

Moderateur Global
Inscrit
20 Février 2013
Messages
10 674
Points
48
  • #23
Re: Lire et ecrire dans un xls

Normalement cela devrait gérer l'évènement lors de l'appuie sur un item de la listView.

En gros si tu appuies sur un des item cela devrait t'afficher un message.
 
D

Der43e

Membre
Inscrit
29 Avril 2016
Messages
40
Points
0
  • #24
Re: Lire et ecrire dans un xls

Ok je te remercie pour l'explication,

alors j'ai des erreur avec ces lignes...

Error:(93, 42) error: cannot find symbol class prestationEco
Error:(93, 21) error: cannot find symbol class prestationEco

ce n'est pas qu'il faut un API pour ces lignes?
Merci d'avance
 
D

Der43e

Membre
Inscrit
29 Avril 2016
Messages
40
Points
0
  • #25
Re: Lire et ecrire dans un xls

Ok alors avec ces lignes je récupérer la position et le contenue de mon items !

Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

voilà maintenant je doit réussir à écrire dans une cellule donné (colonne D) de chaque ligne sélectionner!

Donc la ma principale question et comment réussir a garder en mémoire tous les numéro de ligne sélectionner pour pouvoir dans un seconds temps (listener onclick d'un bouton) choisir les ligne dans les quelle je vais aller écrire!

par ce que si je fait une
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

si je sélectionner une deuxième ligne il supprimer la premier!
 
Valentin

Valentin

Moderateur Global
Inscrit
20 Février 2013
Messages
10 674
Points
48
  • #26
Re: Lire et ecrire dans un xls

Merci pour le code.

Et si tu essayes de faire un tableau afin de garder en mémoire ces numéros ?
 
D

Der43e

Membre
Inscrit
29 Avril 2016
Messages
40
Points
0
  • #27
Re: Lire et ecrire dans un xls

Ok c'est parfait!

merci pour tes conseille tu m'éguile bien dans l'ordre des choses a faire,

du coup j'ai une dernière question et après je serait bon normalement.. ;-)

j'arrive donc a récupérer le ou les numéro de l'items dans une arralist

j'ai un second bouton qui me permet d’écrire ce que je souhaite dans la cellule voulut, mon dernier souci et de définir la row a la quelle je doit insérer ces info par rapport un numéro d'items sélectionner,

donc actuellement je défini ma Row comme ceci (c'est avec l'API POI d'acpache)

Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

je ne sais pas si tu connait POI mais le "(0)" définit le numéro de la ligne donc je n'aurait que à entrer a la suite les id récupérer dans mon array à la place de ce 0 jusqu'à ce que j'ai placer le dernier!

as tu une idées de la procédure a suivre?

j'avais imaginer quelque choses comme sa
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!
j'imagine que cela fonctionnerait si il n'y avais que un items dans mon array mais si il y en as plusieurs c'est claire que cela ne fonctionnera pas

Merci d'avance.
 
Valentin

Valentin

Moderateur Global
Inscrit
20 Février 2013
Messages
10 674
Points
48
  • #28
Re: Lire et ecrire dans un xls

Non je ne connais pas cette API.

Pour ton problème, imagine quelque chose comme ceci : tu mets toute tes row dans un tableau du genre tabRow[] qui contiendra donc toutes les cases sélectionnées.
Ensuite tu ouvres une autre activity avec en paramètres ce tableau que tu lira avec le choix d'édition pour chaque cellule dans cette activity.

Du moins si tu n'as pas encore fait le système pour modifier une row.
 
D

Der43e

Membre
Inscrit
29 Avril 2016
Messages
40
Points
0
  • #29
Re: Lire et ecrire dans un xls

d'accord, mais est ce que il n'y aurait pas une manière plus "simple" du style:

En sachent que j'ai mes id des lignes sélectionner dans un arraylist faire une boucle --> tant que il y a un élément dans mon array
--récupérer un élément le placer dans une variable qui me servira a définir le numéro de la ligne;
--supprimer cette élément de mon array;
--recommencer;

ce serait parfait pour ce que j'ai besoin mais je ne sais pas si cela est possible...

Merci d'avance
 
Valentin

Valentin

Moderateur Global
Inscrit
20 Février 2013
Messages
10 674
Points
48
  • #30
Re: Lire et ecrire dans un xls

Oui c'est à peu près ce que j'ai dit. Sauf que au lieu de faire un tableau d'id vois si tu peux faire directement les donnée, plus simple si tu fais l'envoie de paramètres.
Tu pense faire une autre activity pour modifier les données ?
 
D

Der43e

Membre
Inscrit
29 Avril 2016
Messages
40
Points
0
  • #31
Re: Lire et ecrire dans un xls

je m'en suis sortie comme ceci!!

Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

j'ai terminer mon projet et je t'en remercie ValEntin :lol:

Merci beaucoup pour ton aide qui était plus que efficace!

ce ne sera pas la dernière fois que vous allez me voir sur le forum je pense! :super: :super:
 
Valentin

Valentin

Moderateur Global
Inscrit
20 Février 2013
Messages
10 674
Points
48
  • #32
Re: Lire et ecrire dans un xls

Et tu arrives à bien modifier chaque item à la suite ?

Avec plaisir :wink:
 
D

Der43e

Membre
Inscrit
29 Avril 2016
Messages
40
Points
0
  • #33
Re: Lire et ecrire dans un xls

oui oui avec cela chaque N° de ligne de l'items contenue dans mon array passe dans ma ligne Row row = sheet1.getRow(Integer.parseInt(ArrayOrdre.get(i)));

et du coup à la suite de cela j'ai mes lignes

Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

et je vient écrire (avec POI) dans chaque lignes (row) dans la cellule numéro 3 ( c = row.createCell(3))!
 
Valentin

Valentin

Moderateur Global
Inscrit
20 Février 2013
Messages
10 674
Points
48
  • #34
Re: Lire et ecrire dans un xls

D'accord.

Content pour toi dans ce cas :wink:
 
A

Anonymous

  • #35
Je vous suis et je suis admiratif, les gars.
Ca fait plaisir de voir des vrais codeurs :)
 
Valentin

Valentin

Moderateur Global
Inscrit
20 Février 2013
Messages
10 674
Points
48
  • #36
Merci Coredump :wink:

On se débrouille comme on peux :lol:
 
D

Der43e

Membre
Inscrit
29 Avril 2016
Messages
40
Points
0
  • #37
Merci Cordump

c'est d’autant plus un compliment du faite que je début totalement en dév.! :wink:

merci pour votre aide à tous!
 

Sujets en relation

Haut Bas