ID | 姓名 | 性别 | 年龄 | 地址 | 科目 | 分数 |
---|---|---|---|---|---|---|
1 | 小红 | 女 | 23 | 成都青羊区 | 语文 | 98 |
数学 | 99 | |||||
英语 | 100 | |||||
2 | 小青 | 女 | 25 | 成都金牛区 | 语文 | 97 |
数学 | 98 | |||||
英语 | 99 | |||||
3 | 小明 | 男 | 24 | 成都武侯区 |
org.apache.poi
poi
4.1.0
org.apache.poi
poi-ooxml
4.1.0
/**
* 导出excel
* @param response
* @throws IOException
*/
@RequestMapping("/ExcelDownload")
public void excelDownload(HttpServletResponse response) throws IOException {
//表头数据
String[] header = {"ID", "姓名", "性别", "年龄", "地址", "科目", "分数"};
//数据内容
String[] student1 = {"1", "小红", "女", "23", "成都青羊区"};
String[] student2 = {"2", "小强", "男", "26", "成都金牛区"};
String[] student3 = {"3", "小明", "男", "28", "成都武侯区"};
List a=new ArrayList();
a.add(student1);
a.add(student2);
a.add(student3);
String[] course11={"语文","98"};
String[] course12={"数学","99"};
String[] course13={"英语","100"};
List c1=new ArrayList<>();
c1.add(course11);
c1.add(course12);
c1.add(course13);
String[] course21={"语文","97"};
String[] course22={"数学","98"};
String[] course23={"英语","99"};
List c2=new ArrayList<>();
c2.add(course21);
c2.add(course22);
c2.add(course23);
//声明一个工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
//生成一个表格,设置表格名称为"学生表"
HSSFSheet sheet = workbook.createSheet("学生表");
//设置表格列宽度为10个字节
sheet.setDefaultColumnWidth(10);
//创建第一行表头
HSSFRow headrow = sheet.createRow(0);
//遍历添加表头(下面模拟遍历学生,也是同样的操作过程)
for (int i = 0; i < header.length; i++) {
//创建一个单元格
HSSFCell cell = headrow.createCell(i);
//创建一个内容对象
HSSFRichTextString text = new HSSFRichTextString(header[i]);
//将内容对象的文字内容写入到单元格中
cell.setCellValue(text);
}
int l=0;
//模拟遍历结果集,把内容加入表格
for (int j=0; j
//设置表格默认列宽为10个字节
//sheet.setDefaultColumnWidth(10);
//设置单列列宽:以一个字符的1/256的宽度作为一个单位
sheet.setColumnWidth(4,68*256);
sheet.setColumnWidth(1,20*256);
sheet.setColumnWidth(2,20*256);
String fileName=sdf1.format(new Date())+"-学生信息";
//这后面可以设置导出Excel的名称
response.setHeader("Content-disposition", "attachment;filename="+
new String(fileName.getBytes("utf-8"),"ISO-8859-1" )+ ".xls");
//合并第一列的第3行到第5行
CellRangeAddress region = new CellRangeAddress(3, // first row
5, // last row
1, // first column
1 // last column
);
sheet.addMergedRegion(region);
1. pom.xml中引入poi依赖
2. 声明一个工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
3. 生成一个表格,设置表格名称
HSSFSheet sheet = workbook.createSheet("学员信息");
4. 创建行
HSSFRow headrow = sheet.createRow(0);// 第一行 rownum从0开始
5. 创建单元格
HSSFCell cell = headrow.createCell(i);// i为第几列
6. 创建内容对象
HSSFRichTextString text = new HSSFRichTextString("测试内容");
7. 将内容对象的文字内容写入到单元格中
cell.setCellValue(text);
8. 设置输出流
response.setContentType("application/octet-stream");//八进制输出流
response.setHeader("Content-disposition", "attachment;filename="+ new String(fileName.getBytes("utf-8"),"ISO-8859-1" )+ ".xls");//后面可以设置导出Excel的名称
9. 刷新缓冲
response.flushBuffer();
10. workbook将Excel写入到response的输出流中,供页面下载
workbook.write(response.getOutputStream());
https://blog.csdn.net/weixin_39448458/article/details/83013677
http://www.anyrt.com/blog/list/poiexcel.html