i attempting write excel sheet using poi , hashmaps. code creates , populates excel sheet not of information written sheet. in debug mode seems write 5 key, value pairs , loops start @ key [0]. can tell me mistake in logic?
hssfworkbook workbook = new hssfworkbook(); hssfsheet sheet = workbook.createsheet(make + " sheet"); int rownum = 0; concurrenthashmap <integer, string[] > data = new concurrenthashmap<integer, string[]>(); data.put(rownum++, new string[] {"vin", "make", "model", "year", "major group", "caption", "cap filter", "illustration", "illus filter", "pnc", "part name", "part number", "quantity", "part filter"}); (part p : plist){ string pnc = p.getpnc(); string quantity = p.getquantity(); if(vfilterid.contains(p.getid())) { data.put(rownum++ , new string[] {vinid, make, model, year, group, caption, capfilter, illusname, ifilter, pnc, p.getname(), p.getpartnumber(), quantity, "nonfiltered"}); } else { data.put(rownum++ , new string[] {vinid, make, model, year, group, caption, capfilter, illusname, ifilter, pnc, p.getname(), p.getpartnumber(), quantity, "nonfiltered"}); } } int rowindex = 0; set<integer> keyset = data.keyset(); (integer key : keyset) { row row = sheet.createrow(rowindex++); object[] objarr = data.get(key); int cellindex = 0; (object obj : objarr) { cell cell = row.createcell(cellindex++); cell.setcellvalue((string) obj); } } try { fileoutputstream fos = new fileoutputstream(outputfile); workbook.write(fos); fos.close(); system.out.println("xls sheet written."); } catch (ioexception e) { e.printstacktrace(); } } return returnconstants.success; } thanks in advance!
you're using map store data representing rows in table. you'd better off using list since maps not sorted (i.e. order of entries might change on time).
hssfworkbook workbook = new hssfworkbook(); hssfsheet sheet = workbook.createsheet(make + " sheet"); list<string[]> data = new arraylist<string[]>(); data.add(new string[] {"vin", "make", "model", "year", "major group", "caption", "cap filter", "illustration", "illus filter", "pnc", "part name", "part number", "quantity", "part filter"}); (part p : plist){ string pnc = p.getpnc(); string quantity = p.getquantity(); if(vfilterid.contains(p.getid())) { data.add(new string[] {vinid, make, model, year, group, caption, capfilter, illusname, ifilter, pnc, p.getname(), p.getpartnumber(), quantity, "nonfiltered"}); } else { data.add(new string[] {vinid, make, model, year, group, caption, capfilter, illusname, ifilter, pnc, p.getname(), p.getpartnumber(), quantity, "nonfiltered"}); } } (int rowindex=0; rowindex<data.size(); rowindex++) { row row = sheet.createrow(rowindex); object[] objarr = data.get(rowindex); int cellindex = 0; (object obj : objarr) { cell cell = row.createcell(cellindex++); cell.setcellvalue((string) obj); } }
Comments
Post a Comment