IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Lire fichier Excel CustomAdapter


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de kader15
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2016
    Messages : 65
    Par défaut Lire fichier Excel CustomAdapter
    Bonjour,

    J'aimerai lire mon fichier excel avec une listview "customisé".

    J'ai crée mon constructeur, j'ai fait son adapter ainsi que les .xml, cependant je n'arrive pas à récupérer les données des cellules, pourtant il arrive à récuperer le nombre de ligne de mon excel.

    Je me retrouve avec le nombre de ligne de mon excel mais pas son contenu.


    .java

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
     
     
    import android.app.Activity;
    import android.app.ListActivity;
    import android.content.Intent;
    import android.content.res.AssetManager;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.AdapterView;
    import android.widget.ArrayAdapter;
    import android.widget.EditText;
    import android.widget.ImageView;
    import android.widget.ListView;
    import android.widget.TextView;
    import android.widget.Toast;
     
    import org.w3c.dom.Text;
     
    import java.io.InputStream;
    import java.util.ArrayList;
    import java.util.List;
     
    import jxl.Cell;
    import jxl.Sheet;
    import jxl.Workbook;
     
    public class DisplayMyCoProd extends Activity {
     
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.display_my_co_prod);
     
     
     
            ArrayList<Locom> myList = new ArrayList<Locom>();
            Locom locom;
            locom = new Locom("Engin","Visite");
     
            Intent intent = getIntent();
            String pathFile = intent.getStringExtra("EXTRA_pathFile");
     
            TextView txtv = (TextView)findViewById(R.id.textView);
            txtv.setText(pathFile);
     
            try {
                AssetManager am = getAssets();
                InputStream is = am.open(pathFile);
                Workbook wb = Workbook.getWorkbook(is);
                Sheet sheet = wb.getSheet(0);
                int row = sheet.getRows();
                int col = sheet.getColumns();
     
                String xx = "";
     
                for (int i = 2; i < row; i++) {
                    for (int c = 1; c < col; c++) {
                        Cell cell = sheet.getCell(c, i);
                        switch (col) {
                            case 1:
                                locom.setEngin(cell.getContents());
                                break;
     
                            case 2:
                                locom.setVisite(cell.getContents());
                                break;
     
                            default:
                                break;
                        }
                        xx = xx + cell.getContents();
                    }
                    myList.add(locom);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
     
     
            LocomAdpater dataAdapter = new LocomAdpater(this, myList);
     
            ListView listView = (ListView) findViewById(R.id.display_listview);
            listView.setAdapter(dataAdapter);
     
            listView.setOnItemClickListener(new ItemListView());
     
     
        }
     
     
        private class ItemListView implements AdapterView.OnItemClickListener {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
     
                ViewGroup vg = (ViewGroup)view;
                TextView tv_e = (TextView)vg.findViewById(R.id.tv_engin);
                TextView tv_v = (TextView)vg.findViewById(R.id.tv_visite);
     
                String engin = tv_e.getText().toString();
                String visite = tv_v.getText().toString();
     
                Toast.makeText(DisplayMyCoProd.this,engin +" : "+ visite, Toast.LENGTH_SHORT).show();
     
                Intent ChoixDMCPActivity = new Intent(DisplayMyCoProd.this, ChoixDMCP.class);
                ChoixDMCPActivity.putExtra("EXTRA_TV_E",engin);
                ChoixDMCPActivity.putExtra("EXTRA_TV_V",visite);
                startActivity(ChoixDMCPActivity);
            }
        }
    }
    Locom.java
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
     
    public class Locom {
     
        private String engin = null;;
        private String visite = null;;
     
        //Constructeur
        public Locom(String engin, String visite) {
            super();
            this.engin = engin;
            this.visite = visite;
        }
     
     
     
     
        //set/get
        public String getEngin() {
            return engin;
        }
     
        public void setEngin(String engin) {
            this.engin = engin;
        }
     
        public String getVisite() {
            return visite;
        }
     
        public void setVisite(String visite) {
            this.visite = visite;
        }
    }

    LocomAdapter.java

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
     
    import android.content.Context;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ArrayAdapter;
    import android.widget.TextView;
     
    import java.util.ArrayList;
    import java.util.List;
     
     
    public class LocomAdpater extends ArrayAdapter<Locom> {
        private Context context;
        private ArrayList<Locom> myLocom;
     
     
            public LocomAdpater(Context context, ArrayList<Locom> myLocom){
                super(context, 0, myLocom);
                this.context = context;
                this.myLocom = myLocom;
     
            }
     
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
     
                Locom locomPosition = this.myLocom.get(position);
     
                convertView = LayoutInflater.from(this.context).inflate(R.layout.custom_listview,null);
     
     
     
                //Fill the Engin/Visite
                TextView enginText = (TextView)convertView.findViewById(R.id.tv_engin);
                TextView visiteText = (TextView)convertView.findViewById(R.id.tv_visite);
     
     
     
                enginText.setText(locomPosition.getEngin());
                visiteText.setText(locomPosition.getVisite());
     
                return convertView;
            }
    }
    custom.listview.xml
    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
    19
    20
    21
    22
    23
    24
    25
    26
     
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="match_parent"
        android:layout_height="match_parent">
     
     
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/tv_engin"
            android:text="Engin"
            android:textColor="#4bb6d6"
            android:textSize="20dp"/>
     
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/tv_visite"
            android:text="Visite"
            android:textColor="#b30000"
            android:textSize="18dp"
            android:layout_marginLeft="30dp" />
     
     
    </LinearLayout>
    display_my_co_prod.xml
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="16dp"
        android:paddingLeft="16dp"
        android:paddingRight="16dp"
        android:paddingTop="16dp"
        tools:context="com.mycoprod.akhetib.mycoprod.DisplayMyCoProd"
        android:background="#ffffff">
     
     
        <ListView
            android:id="@+id/display_listview"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true" />
     
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="MyCoProd"
            android:id="@+id/PHP"
            android:layout_gravity="center_horizontal"
            android:layout_centerVertical="true"
            android:layout_centerHorizontal="true" />
     
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="New Text"
            android:id="@+id/textView"
            android:layout_alignBottom="@+id/display_listview"
            android:layout_alignParentEnd="true" />
     
     
    </RelativeLayout>

  2. #2
    Membre chevronné

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2014
    Messages : 262
    Par défaut
    Citation Envoyé par kader15 Voir le message
    Bonjour,

    J'aimerai lire mon fichier excel avec une listview "customisé".

    J'ai crée mon constructeur, j'ai fait son adapter ainsi que les .xml, cependant je n'arrive pas à récupérer les données des cellules, pourtant il arrive à récuperer le nombre de ligne de mon excel.

    Je me retrouve avec le nombre de ligne de mon excel mais pas son contenu.

    ...
    Tu as échappé bel aux modérateurs !

    Comment est construit ton fichier excel ? Je vois quelque chose qui risque de te faire
    mordre les doigts :

    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
    19
    for (int i = 2; i < row; i++) {
                    for (int c = 1; c < col; c++) {
                        Cell cell = sheet.getCell(c, i);
                        switch (col) {
                            case 1:
                                locom.setEngin(cell.getContents());
                                break;
     
                            case 2:
                                locom.setVisite(cell.getContents());
                                break;
     
                            default:
                                break;
                        }
                        xx = xx + cell.getContents();
                    }
                    myList.add(locom);
                }
    Remarque la variable que tu as placé dans la clause switch(col) n'est pas plutôt switch(c) ? puisque col représente le nombre de colonne de ton tableau qui est constant.

    __salut !

  3. #3
    Membre confirmé Avatar de kader15
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2016
    Messages : 65
    Par défaut
    Merci encore lankoande, mais cette fois ci je ne recupere que la derniere valeur du tableau


    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    try {
                AssetManager am = getAssets();
                InputStream is = am.open(pathFile);
                Workbook wb = Workbook.getWorkbook(is);
                Sheet sheet = wb.getSheet(0);
                int row = sheet.getRows();
                int col = sheet.getColumns();
     
                String xx = "";
     
                for (int i = 2; i < row; i++) {
                    for (int c = 1; c < col; c++) {
                        Cell cell = sheet.getCell(c, i);
                        switch (c) {
                            case 1:
                                locom.setEngin(cell.getContents());
                                break;
     
                            case 2:
                                locom.setVisite(cell.getContents());
                                break;
     
                            default:
                                break;
                        }
                        xx = xx + cell.getContents();
                    }
                    myList.add(locom);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }

  4. #4
    Membre chevronné

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2014
    Messages : 262
    Par défaut
    Citation Envoyé par kader15 Voir le message
    Merci encore lankoande, mais cette fois ci je ne recupere que la derniere valeur du tableau


    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    try {
                AssetManager am = getAssets();
                InputStream is = am.open(pathFile);
                Workbook wb = Workbook.getWorkbook(is);
                Sheet sheet = wb.getSheet(0);
                int row = sheet.getRows();
                int col = sheet.getColumns();
     
                String xx = "";
     
                for (int i = 2; i < row; i++) {
                    for (int c = 1; c < col; c++) {
                        Cell cell = sheet.getCell(c, i);
                        switch (c) {
                            case 1:
                                locom.setEngin(cell.getContents());
                                break;
     
                            case 2:
                                locom.setVisite(cell.getContents());
                                break;
     
                            default:
                                break;
                        }
                        xx = xx + cell.getContents();
                    }
                    myList.add(locom);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
    C'est normal, je m'attendais à çà. Tu utilise la même instance ( locom ) pour tous les éléments de ta liste. Du coup c'est la dernière valeur

    qui est retenue. Il serait mieux de créer une instance pour chaque item, c'est dire que tu crée ton instance avant d'entrer dans ta deuxième

    boucle.

    __salut !

  5. #5
    Membre confirmé Avatar de kader15
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2016
    Messages : 65
    Par défaut
    Ah oui, merci beaucoup je viens de comprendre mon erreur.

    Encore merci

    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
     
      for (int i = 2; i < row; i++) {
                    Locom locom;
                    locom = new Locom("Engin","Visite");
     
                    for (int c = 1; c < col; c++) {
                        Cell cell = sheet.getCell(c,i);
     
                       if(c==1){
                           locom.setEngin(cell.getContents());
                       }
                       if(c==2){
                            locom.setVisite(cell.getContents());
                        }
                        xx = xx + cell.getContents();
                    }
                    myList.add(locom);
                }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 13
    Dernier message: 06/03/2017, 09h47
  2. Lire fichier Excel deja ouvert.
    Par ketthos dans le forum C#
    Réponses: 2
    Dernier message: 28/05/2007, 00h59
  3. lire fichier Excel via VB.NET
    Par vinceLeBarbare dans le forum VB.NET
    Réponses: 5
    Dernier message: 13/03/2007, 15h32
  4. lire fichier excel delphi 7
    Par dietrich dans le forum Delphi
    Réponses: 3
    Dernier message: 26/09/2006, 15h49
  5. Lire Fichier Excel avec ASP
    Par Charo dans le forum ASP
    Réponses: 5
    Dernier message: 05/05/2006, 16h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo