用java在excel中列出Map数据

alen0pnh  于 2021-06-30  发布在  Java
关注(0)|答案(0)|浏览(228)

需要帮助!我正在尝试编写一个简单的函数,可以从excel源返回数据。我试图从excel文件创建一个数据Map列表,但是我得到的列表具有相同的值。所有值都相同。
这是我的密码:

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class ExcelReaderFinal {
    public static void main(String[] args) throws IOException {
        String path = "C:\\Users\\username\\Downloads\\TestFile.xlsx";
        FileInputStream fis = new FileInputStream(path);
        Workbook workbook = new XSSFWorkbook(fis);
        Sheet sheet = workbook.getSheetAt(0);
        int lastRow = sheet.getLastRowNum()-5;
        int lastColumn = 3;

        Map<String, Object> dataMap = new HashMap<String, Object>();
        ArrayList<Map<String, Object>> dataList = new ArrayList<>();

        for(int j=0; j<=lastRow; j++){

            for(int i=0; i<=lastColumn; i++) {

                Row row = sheet.getRow(4);
                Cell keyCell = row.getCell(i);
                Row val = sheet.getRow(5+j);
                Cell valueCell = val.getCell(i);

                String value = valueCell.getStringCellValue().trim();
                String key = keyCell.getStringCellValue().trim();
                dataMap.put(key, value);

            }
            dataList.add(dataMap);
        }
        System.out.println(dataList);
    }

}

我的实际输出是这样的:
[{负val=0,账号=121312c,正val=20000000.00,banko=rcbc},{负val=0,账号=121312c,正val=20000000.00,banko=rcbc},{负val=0,账号=121312c,正val=20000000.00,banko=rcbc}]
但我预期的结果是这样的:

这是我的excel文件来源:

总而言之:
我想以列表格式获取excel文件中的所有数据
该列表应根据excel中列的排列进行排序。
非常感谢!!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题