2 xushouwei xushouwei 于 2016.09.07 18:29 提问

java解析出来excel数据后,如何才能将数据封装成List<Object[]> datas? 10C

EXCEL表结构:图片说明
求大神给个解决方案

4个回答

bobyang888
bobyang888   2016.09.07 19:28

解析sheet页,for嵌套,遍历每一行,再遍历每一个单元格

dasifukuagou
dasifukuagou   2016.09.07 20:37

百度poi就行,找个demo

qq_23039605
qq_23039605   2016.09.08 09:01

这样:

        List<Object[]> list = new ArrayList<Object[]>();
        HSSFWorkbook workbook = new HSSFWorkbook(io);
        int sheets = workbook.getNumberOfSheets();

        for(int i =0;i<sheets;i++){
            HSSFSheet sheet = workbook.getSheetAt(i);

            for(int j=1;j<sheet.getPhysicalNumberOfRows();j++){
                HSSFRow row = sheet.getRow(j);
                Object[] arr = new Object[row.getPhysicalNumberOfCells()];

                for (int k = 0; k < row.getPhysicalNumberOfCells(); k++) {
                    arr[k] = getformatCellValue(row.getCell(k));
                }
                list.add(arr);
            }
        }

        return list;

zhuzige521888
zhuzige521888   2016.09.08 15:48

cell可以识别文档中的数据类型,比如日期,字符串,或者数字,根据需要进行转换 如果要封装成Object[]那就(Object)强转就可以了。
HSSFWorkbook wb = new HSSFWorkbook(new POIFSFileSystem(new BufferedInputStream(source)));
Sheet sheet = wb.getSheetAt(1);
Row row = sheet.getRow(1);
Cell cell = row.getCell(1);

(1)Date date = cell.getDateCellValue();
(2)String string = cell.getStringCellValue();
(3)double double1 = cell.getNumericCellValue();

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!