私はプログラミングが初めてです。Excelファイルを反復処理して値をハッシュマップHashMapに入れるプログラムがありますが、ハッシュマップ内のオブジェクトには常に最後のレコードがあります。私は自分のコードを投稿します。間違いを教えてくれるかもしれませんし、コードをどのように行うべきかを投稿することもできます。助けてください、本当にここで立ち往生しています。
私のエクセルファイル:
doc seq acc status notes
1111 2 account test value1
22222 3 account test2 value2
私のオブジェクト....
public class Account{
int docNumber;
int docSequence;
String docAccCode;
String docStatus;
String docNotes;
//getters and setters bellow
......
}
私の繰り返し方法...
public void readFile() throws IOException{
InputStream ExcelFileToRead = new FileInputStream(inputFile);
XSSFWorkbook wb = new XSSFWorkbook(ExcelFileToRead);
XSSFSheet sheet = wb.getSheetAt(0);
XSSFRow row = null;
XSSFCell cell = null;
int recordNumber = 0;
Iterator rows = sheet.rowIterator();
while (rows.hasNext()){
row=(XSSFRow) rows.next();
int rowNum = row.getRowNum();
int cellNum = 0;
if(rowNum != 0){
Iterator cells = row.cellIterator();
while (cells.hasNext()){
cell=(XSSFCell) cells.next();
switch(cellNum){
case 0:
docMap.setDocNumber((int)cell.getNumericCellValue());
break;
case 1:
docMap.setDocSequence((int)cell.getNumericCellValue());
break;
case 2:
docMap.setDocAccCode(cell.getStringCellValue());
break;
case 3:
docMap.getDocStatus(cell.getStringCellValue());
break;
case 4:
docMap.getDocNotes(cell.getStringCellValue());
}
cellNum ++;
}
// docMap overwrites it's self and has last record only.
records.put(recordNumber, docMap);
recordNumber ++;
}
}
}