1. 程式人生 > >java 使用反射將資料寫入Excel

java 使用反射將資料寫入Excel

 public void writeData(String fileName, String sheetName, List<Object> list, Map<String, String> colMap)
            throws IOException, WriteException, IllegalAccessException, NoSuchFieldException {
        File file = new File(fileName);
        file.createNewFile();
        OutputStream os = new FileOutputStream(file);
WritableWorkbook wwb = Workbook.createWorkbook(os); WritableSheet writableSheet = wwb.createSheet(sheetName, 0); int rowIndex = 0; int colIndex = 0; Iterator iterator = colMap.entrySet().iterator(); List<String> colList = new ArrayList<>(); while (iterator.hasNext
()) { Map.Entry entry = (Map.Entry) iterator.next(); colList.add(entry.getValue().toString()); WritableFont wf = new WritableFont(WritableFont.createFont("宋體"), 10, WritableFont.BOLD, false); WritableCellFormat wcf = new WritableCellFormat(wf); Label label = new Label(colIndex, rowIndex, entry.getKey
().toString(), wcf); writableSheet.addCell(label); colIndex++; } rowIndex++; for (Object obj : list) { colIndex = 0; for (String str : colList) { Field field = obj.getClass().getDeclaredField(str); field.setAccessible(true); Label label = new Label(colIndex, rowIndex, field.get(obj).toString()); writableSheet.addCell(label); colIndex++; } rowIndex++; } wwb.write(); wwb.close(); os.flush(); os.close(); }

field.setAccessible(true); 這個設定可以訪問到private的值。

Map