ADD EXCEL DATA TO Multidimensional ArrayList

Je suis confronté à des lists multidimensionnelles ArrayLists. Je lis des données à partir d'un file excel avec ID, date et INFO 3 lignes. J'ai réussi à définir la list de lists mais avec datatables de 3rows dans chaque index, c.-à-d. Array (1) id1 date1 info1. Impossible d'appeler l'information1 individuellement. Je dois créer une multy. arraylist où je peux appeler arrayindex (1) item info1.

public class MainActivity extends AppCompatActivity { Ssortingng xx; Ssortingng show; int count=0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void order(View v) { try { AssetManager am=getAssets(); InputStream is=am.open("test.xls"); Workbook wb =Workbook.getWorkbook(is); Sheet s=wb.getSheet(0); int row =s.getRows(); int col=s.getColumns(); xx=""; for(int i=0; i<row ; i++) { for (int c=0; c<col; c++) { Cell z=s.getCell(c,i); xx=xx+z.getContents(); xx=xx+" "; mainArray(); } xx=xx+"\n"; } display(xx); } catch (Exception e) { } } public void display(Ssortingng value) { TextView x=(TextView) findViewById(R.id.display); x.setText(value); } public void mainArray() { ArrayList arrayList = new ArrayList(); arrayList.add(xx); Log.d("log1","Size of al after additions: " + arrayList.size()); Log.d("log1","Contents of al: " + arrayList); } 

}

Comment lancer un arraylist multidimensionnel (id, date, info) et comment, lors de l'itération, je peux append en fonction de la ligne / ligne, datatables dans la list appropriée.

 ArrayList [ list_Id {id1, id2,id3,.............} list_Date {date1, date2,date3.......} list_Info {info1, info2, info3.......} ] 

Diviser et conquérir est l'approche que vous devez suivre – briser tous les problèmes à des problèmes plus petits et essayer de les résoudre un par un.

Ici, il me semble, vous essayez de faire 2 choses: lire des données d'excel, convertir datatables en "ArrayLists multidimensionnelles" et maintenant vous ne savez pas ce qui ne fonctionne pas …

Veuillez essayer d'imprimer datatables d'Excel d'abord sur une console – vous vérifierez, votre partie de lecture fonctionne.


Pourquoi souhaitez-vous avoir des "arrays multidimensionnels"? Vous avez des lignes et des cols, alors pouvez-vous commencer par Ssortingng[][] table = new Ssortingng[rows][cols]; ?


Il y a plusieurs problèmes dans votre code – Ssortingng xx ne devrait pas être là, mais ce n'est que temporairement que je dirais.

Jamais ignorer l'exception – comment vous voulez savoir qu'il y avait une exception, au less save quelque chose!

 ///////////****** WRITE Excel TO SD ***///////////// Fnamexls="testfile" + ".xls"; File sdCard = Environment.getExternalStorageDirectory(); directory = new File (sdCard.getAbsolutePath() + "/My File"); directory.mkdirs(); sdFile = new File(directory, Fnamexls); if(sdFile.exists()) { //Do something Log.d("logW","exixts"); } else { // Do something else. Log.d("logW", "does not exixt"); wbSettings = new WorkbookSettings(); wbSettings.setLocale(new Locale("en", "EN")); try { wrWorkbook = Workbook.createWorkbook(sdFile, wbSettings); writeSheet = wrWorkbook.createSheet("First Sheet", 0); int row = s.getRows(); int col = s.getColumns(); xx = ""; for (int c = 0; c < col; c++) { for (int r = 0; r < row; r++) { Cell z = s.getCell(c, r); xx = z.getContents(); Label label4 = new Label(c, r, Ssortingng.valueOf(xx)); try { writeSheet.addCell(label4); } catch (RowsExceededException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (WriteException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } wrWorkbook.write(); try { wrWorkbook.close(); } catch (WriteException e) { // TODO Auto-generated catch block e.printStackTrace(); } //createExcel(excelSheet); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } readSD();