使用Apache的poi导出Excel
来源:互联网 发布:日本陆军大学知乎 编辑:程序博客网 时间:2024/05/22 10:32
这两天在做一个项目,要用到导出excel的功能,因为以前没使用过这个功能,和我一起学习吧
首先你要下载最新的poi插件。在java中使用ssh框架的时候你就没有必要自己下载poi了,因为在你添加框架支持的时候spring已经为你添加了poi插件,有现成的干嘛不用呢。
下载完毕
在项目里面添加poi的支持jar包。
接下来就是进行开发
首先就是创建一个工作薄,在官方文档里面有标准的创建代码可以参考
在这个里面有两个东东不知道你发现了没有HSSF和XSSF。知道他们的区别吗??其实你google也是可以找到的
其实在官方文档里面有明确的说明,
HSSF是POI项目的纯Java实现的Excel'97(-2007)文件格式。XSSF是POI项目的纯Java实现Excel 2007中的。xlsx(OOXML)文件格式。
HSSF和XSSF提供电子表格的创建,修改,读取和写入XLS电子表格的方式来阅读。
HSSF和XSSF提供电子表格的创建,修改,读取和写入XLS电子表格的方式来阅读。
我用的是Hssf
好了创建完工作薄之后就是创建单元格了,我在这边也不啰嗦太多,直接贴代码,因为在官方API文档里面都有现成的指南
HSSFWorkbook wb=new HSSFWorkbook();
HSSFSheet sheet=wb.createSheet();
HSSFRow row=sheet.createRow(0);
HSSFCell cell=row.createCell((short)0);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("序号");
cell=row.createCell((short)1);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("商品名称");
cell=row.createCell((short)2);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("商品条码");
cell=row.createCell((short)3);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("商品价格");
cell=row.createCell((short)4);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("送货商家");
cell=row.createCell((short)5);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("商家地址");
cell=row.createCell((short)6);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("联系电话");
HSSFSheet sheet=wb.createSheet();
HSSFRow row=sheet.createRow(0);
HSSFCell cell=row.createCell((short)0);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("序号");
cell=row.createCell((short)1);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("商品名称");
cell=row.createCell((short)2);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("商品条码");
cell=row.createCell((short)3);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("商品价格");
cell=row.createCell((short)4);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("送货商家");
cell=row.createCell((short)5);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("商家地址");
cell=row.createCell((short)6);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("联系电话");
好了一个excel文件创建的大部分任务完成现在就是填充文件内容
List<Goods> goods=this.findAll();
for(int i=0;i<goods.size();++i){
Goods g=goods.get(i);
row=sheet.createRow(i+1);
cell=row.createCell((short)0);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(i+1);
cell=row.createCell((short)1);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(g.getGoodsname());
cell=row.createCell((short)2);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(g.getBarcode());
cell=row.createCell((short)3);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(g.getPrice());
cell=row.createCell((short)4);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(g.getGoodsprovides().getProName());
cell=row.createCell((short)4);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(g.getGoodsprovides().getProAddress());
}
for(int i=0;i<goods.size();++i){
Goods g=goods.get(i);
row=sheet.createRow(i+1);
cell=row.createCell((short)0);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(i+1);
cell=row.createCell((short)1);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(g.getGoodsname());
cell=row.createCell((short)2);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(g.getBarcode());
cell=row.createCell((short)3);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(g.getPrice());
cell=row.createCell((short)4);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(g.getGoodsprovides().getProName());
cell=row.createCell((short)4);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(g.getGoodsprovides().getProAddress());
}
最后就是创建IO流,输出就ok
File file=new File("test.xls");
OutputStream out;
InputStream sin = null;
try {
out = new FileOutputStream(file);
wb.write(out);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
try {
sin=new FileInputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return sin;
OutputStream out;
InputStream sin = null;
try {
out = new FileOutputStream(file);
wb.write(out);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
try {
sin=new FileInputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return sin;
转载注明出处:诚尚IT电脑培训基地,
- 使用Apache的poi导出Excel
- 使用Apache的POI,将数据导出至EXCEL
- 使用Apache POI,实现导出Excel的功能
- 使用apache的poi包导出excel表格
- Jenke 使用apache的poi实现导入导出excel
- 使用apache的poi实现导入导出excel
- 使用apache的poi实现导入导出excel
- 使用apache poi进行excel导出
- 使用apache poi包导出excel
- 使用Apache POI中的XSSF导出Excel
- apache poi导出excel
- Apache POI导出Excel
- Apache POI实现数据的Excel导出
- Apache POI导出Excel文件
- Apache POI导出Excel工具
- Apache POI实现导出EXcel
- Apache POI 导出Excel笔记
- 使用poi导出excel
- 深入分析Spring混合事务
- 2014迅雷校园招聘笔试题答案
- Code::Blocks 12.11安装
- 如何判断一个点是否在三角形内部
- UVa 107 The Cat in the Hat (数学)
- 使用Apache的poi导出Excel
- 招聘程序员
- 用HTML编写的一个小调查表
- Rcp之代码方式添加工具栏实例
- 配置Mysql数据库连接池
- 让 Terminal/vim 使用 Solarized 配色
- 黑马程序员 银行调度系统
- Windows Server 2012正式版RDS系列⑼
- eth0 eth1