繁体   English   中英

更新.xls或.xlsx文件中的数据

[英]Update data in .xls or .xlsx file

我有一个很大的基于键值的列表记录,我使用了'CellReference' ,我只是想知道任何其他有效方式都是可行的,因为我认为'CellReference'得到了更多的更新时间。

数据是这样的:

      Column/value

       B9     35
       B8     63
       B7     11
       B6     36
       B5     87
       B14    3066
       B13    5025

我的每对迭代的代码是:

        Map<String,Integer> result= getMap();//getting Column and value
        Iterator it = result.entrySet().iterator();
        CellReference reference=null;
            while (it.hasNext()) {
                Map.Entry pair = (Map.Entry) it.next();
                reference = new CellReference(pair.getKey().toString());
                Row row = spreadsheet.getRow(reference.getRow());
                Cell cell = null;
                if (row != null) {
                    cell = row.getCell(ref.getCol());
                }
            if (cell != null)
                cell.setCellValue(Double.parseDouble(pair.getValue().toString()));
        }

高效这个词在这里还不清楚,但是您也可以尝试

          List<String> dataList = new ArrayList<String>();
    List<Integer> rowNo=new ArrayList<Integer>();
    List<Integer> colNo=new ArrayList<Integer>();
    int countRow=1;
    int countCol=1;
    try {

        FileInputStream fis = new FileInputStream(file);
    //  System.out.println("loadinggg !!!");
        HSSFWorkbook wb = new HSSFWorkbook(fis);
        HSSFSheet sheet = wb.getSheetAt(0);
        Iterator<Row> rowIterator = sheet.iterator();

        while (rowIterator.hasNext()) {
            rowNo.add(countRow);
            Row row = rowIterator.next();
            Iterator<Cell> cellIterator = row.cellIterator();
            while (cellIterator.hasNext()) {
                cell = cellIterator.next();
                switch (cell.getCellType()) {
                case Cell.CELL_TYPE_STRING: {
                    dataList.add(cell.getStringCellValue());
                    cell.setCellValue("iterate through your own list here");
                }
                    break;
                }
            }
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM