[英]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.