实现步骤
- 创建工作簿
- 创建sheet页
- 设置列宽
- 写入表头
- 写入数据
- 设置文件名
- 写出数据流
实现代码
public void exportGlobal(HttpServletResponse response) {
try {
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("排行榜");
sheet.setColumnWidth(0, 20 * 256);
sheet.setColumnWidth(1, 20 * 256);
sheet.setColumnWidth(2, 30 * 256);
List<Rank> rankList = new ArrayList<Rank>();
Rank rank = new Rank();
rank.setRank(1);
rank.setName("zhangsan");
rank.setScore(100);
rankList.add(rank);
Rank rank1 = new Rank();
rank1.setRank(2);
rank1.setName("lisi");
rank1.setScore(99);
rankList.add(rank1);
String fileName = "排行榜.xls";
int rowNum = 1;
String[] headers = {"排名", "姓名","积分"};
HSSFRow row = sheet.createRow(0);
for (int i = 0; i < headers.length; i++) {
HSSFCell cell = row.createCell(i);
HSSFRichTextString text = new HSSFRichTextString(headers[i]);
cell.setCellValue(text);
}
for (Rank rank: rankList) {
HSSFRow row1 = sheet.createRow(rowNum);
row1.createCell(0).setCellValue(rank.getRank());
row1.createCell(1).setCellValue(rank.getName());
row1.createCell(2).setCellValue(rank.getScore());
rowNum++;
}
response.setContentType("application/octet-stream");
response.setHeader("Content-disposition", "attachment;filename=" + java.net.URLEncoder.encode(fileName, "UTF-8"));
response.flushBuffer();
workbook.write(response.getOutputStream());
workbook.close();
} catch (Exception e) {
}