1.依賴
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.0</version>
</dependency>
2. 基本使用
HSSFWorkbook book = new HSSFWorkbook();
HSSFSheet sheet03 = book.createSheet("sheet03");
HSSFRow row = sheet03.createRow(0);
HSSFCell cell = row.createCell(0);
cell.setCellValue("helloworld~~~");
sheet03.autoSizeColumn(0);
book.write(new File("d:\\test\\test.xls"));
book.close();
HSSFWorkbook book = new HSSFWorkbook(new FileInputStream("d:\\test\\abc.xls"));
HSSFSheet sheet = book.getSheet("sysUsers2");
Iterator<Row> rows = sheet.rowIterator();
while(rows.hasNext()){
Row row = rows.next();
Iterator<Cell> cells = row.cellIterator();
while(cells.hasNext()){
Cell cell = cells.next();
String value = cell.getStringCellValue();
System.out.print(value+"\t");
}
System.out.println();
}
3. 樣式定製
HSSFCellStyle style = book.createCellStyle();
style.setBorderTop(BorderStyle.THIN);
style.setBorderBottom(BorderStyle.THIN);
style.setBorderLeft(BorderStyle.THIN);
style.setBorderRight(BorderStyle.THIN);
style.setAlignment(HorizontalAlignment.CENTER);
style.setVerticalAlignment(VerticalAlignment.CENTER);
Font font = book.createFont();
font.setBold(true);
font.setItalic(true);
font.setUnderline(Font.U_SINGLE);
font.setStrikeout(true);
font.setColor(IndexedColors.RED.getIndex());
font.setFontHeightInPoints((short)20);
style.setFont(font);
style.setFillForegroundColor(IndexedColors.YELLOW.getIndex());
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
cell.setCellStyle(style);
4.工具類
public static void write(List<Object> data, String sheetName,HttpServletResponse response,String fileName)
throws NoSuchFieldException, IllegalAccessException, IOException {
HSSFWorkbook hssfWorkbook = new HSSFWorkbook();
HSSFSheet sheet = hssfWorkbook.createSheet(sheetName);
Field[] fields = data.get(0).getClass().getDeclaredFields();
HSSFRow titlerRow = sheet.createRow(0);
for (int i = 0; i < fields.length; i++) {
HSSFCell cell = titlerRow.createCell(i);
cell.setCellValue(fields[i].getName());
}
for (Object d : data) {
int lastRowNum = sheet.getLastRowNum();
HSSFRow row = sheet.createRow(lastRowNum+1);
for (int i = 0; i < fields.length; i++) {
HSSFCell cell = row.createCell(i);
Field f = fields[i];
System.out.println("Field name:"+f.getName());
f.setAccessible(true);
String cellValue = String.valueOf(f.get(d));
cell.setCellValue(cellValue);
}
}
for (int i = 0; i < fields.length; i++) {
sheet.autoSizeColumn(i);
}
String finalFileName = new String(fileName.getBytes(Charset.forName("utf-8")),"iso-8859-1");
response.setHeader("content-disposition","attachment;filename="+finalFileName);
hssfWorkbook.write(response.getOutputStream());
hssfWorkbook.close();
response.getOutputStream().close();
}