Java使用poi生成Excel表格

近期项目需要根据后台数据,导出Excel。本人小白一个,只好去google一番。在这里做一个记录。

  • 项目准备
  • 下载poi包
  • 编码实现

下载poi包

我把我使用的poi包放入了我的下载里面,欢迎大家下载,下载之后解压如下图:
这里写图片描述
导入上图的包到项目里即可。

编码实现

我们可以去查阅官方文档,官网地址:https://poi.apache.org/
这里写图片描述
首页就可以看到Excel我们所需要的,很棒!直接进去看看!

这里写图片描述
点击how-to:使用google翻译直接帮我翻译
这里写图片描述
找到了对应的文档编码起来也是十分方便啊!!

//这里是定义一个文件输出流对象,后面参数是输出到硬盘的哪个位置
FileOutputStream out = new FileOutputStream("h://upload/demo.xls");
//创建一个工作簿
Workbook wb = new HSSFWorkbook();
//创建一张表
Sheet sheet = wb.createSheet();
//定义一行
Row row = null;
//定义一个格子  (从这个流程看来是不是非常的面向对象啊)
Cell cell = null;   

//标题字体,设置单元格样式
CellStyle titleStyle = wb.createCellStyle();
Font titleFont = wb.createFont();
titleFont.setColor( (short)0x0 );
titleFont.setFontHeightInPoints((short) 12);
titleFont.setBoldweight(Font.BOLDWEIGHT_BOLD);
titleStyle.setFont(titleFont);

//正常字体
CellStyle normalStyle = wb.createCellStyle();
Font normalFont = wb.createFont();
normalFont.setColor((short)0x0);
normalFont.setFontHeightInPoints((short) 12);
normalFont.setBoldweight(Font.BOLDWEIGHT_NORMAL);               
normalStyle.setFont(normalFont);

//设置这个Excel工作簿的第一张表的名字
wb.setSheetName(0, "订单测试");
//初始化行号 poi行号默认从0开始
int rownum;

//起一个title字体加粗
row = sheet.createRow(0);
//设置行高
row.setHeight((short) 0x249);
//这里创建10个单元格即可 这里直接根据封装好的对象map<Short,String>来读取
//初始化头
for (short cellnum = (short) 0; cellnum < 10; cellnum ++){
                     cell = row.createCell(cellnum);
                     cell.setCellValue(titleMap.get(cellnum));
                     //应用标题的样式
                     cell.setCellStyle(titleStyle);
    }
//设置内容 注意这里rownum从1开始了,这里的数据全填test好了
for(rownum = (short)1;rownum<10;rownum++){
                    row = sheet.createRow(rownum);
                     for (short cellnum = (short) 0; cellnum < 9; cellnum ++){
                         cell = row.createCell(cellnum);
                         cell.setCellValue("test");
                         //应用正常的样式
                         cell.setCellStyle(normalStyle);
                     }
                }   

//由于项目需要我需要统计总人数和总价格,再加一行。
                row = sheet.createRow(sheet.getLastRowNum()+1);
                cell = row.createCell(0);
                cell.setCellValue("总人数");
                cell.setCellStyle(titleStyle);

                cell = row.createCell(1);
                cell.setCellValue("45");
                cell.setCellStyle(titleStyle);

                cell = row.createCell(2);
                cell.setCellValue("总金额");
                cell.setCellStyle(titleStyle);

                cell = row.createCell(3);
                cell.setCellValue("256.1");
                cell.setCellStyle(titleStyle);

                //写入工作簿
                wb.write(out);
                out.close();

运行:
这里写图片描述
成功生成:
这里写图片描述
测试完成,这里都是用的测试数据,项目用到的时候改为真实数据就好了!
想要深入研究的同学可以自行去查阅他们的文档。
想要测试的同学,附上我测试的demo

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页