java poi导出EXCEL xls文件代码
String _currentPage = request.getParameter("currentPage");
Integer currentPage = 0;
if(_currentPage == null){
currentPage = 1;
}else{
currentPage = Integer.valueOf(_currentPage);
}
log.info("导出excel页码: " + currentPage); /**map为空时查询全部的配件信息*/
Map map = new HashMap();
map.put("flag",10);
map.put("unionFlag",0); //0表示单件商品,而非组合商品。
Integer totalSize = partsMgrService.totalPartsInfo(map);
/**封装pageUtil对象*/
PageUtil pageUtil = new PageUtil(totalSize,Integer.valueOf(currentPage)); //读取第一页,与partsmgr.jsp查询保持一致。
map.put("pageUtil",pageUtil);
//map.put("flag",10);
list = partsMgrService.listPartsInfo(map); try {
HSSFWorkbook wb = partsMgrService.export(list); //调用service方法~!
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-disposition", "attachment;filename=partsList.xls");
OutputStream ouputStream = response.getOutputStream();
wb.write(ouputStream);
ouputStream.flush();
ouputStream.close(); } catch (Exception e) {
e.printStackTrace();
log.error("配件导出excel错误:", e);
}
@Override
public HSSFWorkbook export(List<PartsInfoDTO> list) throws Exception{
String[] excelHeader = {"ID", "编码", "名称","库存","成本价","市场价","销售价","重量","上架","所属品牌","所属分类","所属供应商","图片"}; HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("养车之家后台配件列表");
// sheet.setDefaultRowHeight((short)300);
// sheet.setDefaultColumnWidth((short)3000);
sheet.setColumnWidth(0, 3766); //第一个参数代表列id(从0开始),第2个参数代表宽度值 参考 :"2012-08-10"的宽度为2500 // sheet.setColumnWidth(0, 1000);
/**没有效果 ~!!! 140123 huangjing
* 是设置了sheet.autoSizeColumn(i); 的原因
* */
sheet.setColumnWidth(1, 3766);
sheet.setColumnWidth(2, 3766);
sheet.setColumnWidth(3, 3766);
sheet.setColumnWidth(4, 3766);
sheet.setColumnWidth(5, 3766);
sheet.setColumnWidth(6, 3766);
sheet.setColumnWidth(7, 3766);
sheet.setColumnWidth(8, 3766);
sheet.setColumnWidth(9, 3766);
sheet.setColumnWidth(10, 3766);
sheet.setColumnWidth(11, 3766);
sheet.setColumnWidth(12, 3766); HSSFCellStyle style = wb.createCellStyle();
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 垂直
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 水平
style.setWrapText(true); //设置是否能够换行,能够换行为true HSSFRow row = sheet.createRow((int) 0);
for (int i = 0; i < excelHeader.length; i++) {
HSSFCell cell = row.createCell(i);
cell.setCellValue(excelHeader[i]);
cell.setCellStyle(style);
// sheet.autoSizeColumn(i);
} for (int i = 0; i < list.size(); i++) {
row = sheet.createRow(i + 1);
PartsInfoDTO dto = list.get(i);
HSSFCell cell = null;
cell = row.createCell(0);
cell.setCellValue(dto.getId());
cell.setCellStyle(style); cell = row.createCell(1);
if(dto.getPartsCode() != null){
cell.setCellValue(dto.getPartsCode());
}else{
cell.setCellValue("-");
}
cell.setCellStyle(style); cell = row.createCell(2);
if(dto.getPartsName() != null){
cell.setCellValue(dto.getPartsName());
}else{
cell.setCellValue("-");
}
cell.setCellStyle(style); cell = row.createCell(3);
if(dto.getStoreNum() != null){
cell.setCellValue(dto.getStoreNum());
}else{
cell.setCellValue("-");
}
cell.setCellStyle(style); cell = row.createCell(4);
if(dto.getCostPrice() != null){
cell.setCellValue(dto.getCostPrice());
}else{
cell.setCellValue("-");
}
cell.setCellStyle(style); cell = row.createCell(5);
if(dto.getMarketPrice() != null){
cell.setCellValue(dto.getMarketPrice());
}else{
cell.setCellValue("-");
}
cell.setCellStyle(style); cell = row.createCell(6);
if(dto.getRetailPrice() != null){
cell.setCellValue(dto.getRetailPrice());
}else{
cell.setCellValue("-");
}
cell.setCellStyle(style); cell = row.createCell(7);
if(dto.getWeight() != null){
cell.setCellValue(dto.getWeight());
}else{
cell.setCellValue("-");
}
cell.setCellStyle(style); cell = row.createCell(8);
if(dto.getUpdown() == 0){
cell.setCellValue("否");
}else{
cell.setCellValue("是");
}
cell.setCellStyle(style); cell = row.createCell(9);
if(dto.getPartsBrandDto().getBrandName() != null){
cell.setCellValue(dto.getPartsBrandDto().getBrandName());
}else{
cell.setCellValue("-");
}
cell.setCellStyle(style); String typeName = "";
if(dto.getPartsType2Dto().getTypeName() != null){
typeName = dto.getPartsType2Dto().getTypeName();
}else{
typeName = "-";
}
if(dto.getPartsTypeDto().getTypeName() != null){
typeName += "-" + dto.getPartsTypeDto().getTypeName();
}else{
typeName += "-";
}
cell = row.createCell(10);
cell.setCellValue(typeName);
cell.setCellStyle(style); cell = row.createCell(11);
if(dto.getSupplyInfoDto().getSupplyName() != null){
cell.setCellValue(dto.getSupplyInfoDto().getSupplyName());
}else{
cell.setCellValue("-");
}
cell.setCellStyle(style); cell = row.createCell(12);
if(dto.getPic().equals("none.jpg")){
cell.setCellValue("无");
}else{
cell.setCellValue("有");
}
cell.setCellStyle(style); }
return wb; }
实现从数据库中查询数据按当前分页来导出~!!!
导出效果图:
java poi导出EXCEL xls文件代码的更多相关文章
- java poi导入EXCEL xls文件代码
/** * */ package com.bn.car.common.report.excel; import java.io.FileInputStream; import java.io.IOEx ...
- 重构:以Java POI 导出EXCEL为例
重构 开头先抛出几个问题吧,这几个问题也是<重构:改善既有代码的设计>这本书第2章的问题. 什么是重构? 为什么要重构? 什么时候要重构? 接下来就从这几个问题出发,通过这几个问题来系统的 ...
- Java POI 导出EXCEL经典实现 Java导出Excel
转自http://blog.csdn.net/evangel_z/article/details/7332535 在web开发中,有一个经典的功能,就是数据的导入导出.特别是数据的导出,在生产管理或者 ...
- 重构:以Java POI 导出EXCEL为例2
前言 上一篇博文已经将一些对象抽象成成员变量以及将一些代码块提炼成函数.这一节将会继续重构原有的代码,将一些函数抽象成类,增加成员变量,将传入的参数合成类等等. 上一篇博文地址:http://www. ...
- java POI导出Excel文件数据库的数据
在web开发中,有一个经典的功能,就是数据的导入导出.特别是数据的导出,在生产管理或者财务系统中用的非常普遍,因为这些系统经常要做一些报表打印的工作.这里我简单实现导出Excel文件. POI jar ...
- Java POI导出Excel不弹框选择下载路径(下载文件不选择下载路径,默认) Chrome
在Chrome浏览器中,Java导出Excel文件时,浏览器弹出提示框,需要选择下载路径 在Chrome中的高级设置中,把“下载前询问每个文件的保存位置”去掉就解决了 DEEPLOVE(LC)
- java:POI导出excel
POI是一个开源项目,专用于java平台上操作MS OFFICE,企业应用开发中可用它方便导出Excel. 下面是使用示例: 1.maven中先添加依赖项 <dependency> < ...
- POI导出Excel(xls、xlsx均可以,也支持图片)——(三)
Jar包
- spring boot:使用poi导出excel电子表格文件(spring boot 2.3.1)
一,什么是poi? 1,poi poi是用来兼容微软文档格式的java api, 它是apache的顶级项目之一, 也是我们在生产环境中导出excel时使用最多的库 2,poi官方网站: http:/ ...
随机推荐
- CSS Sprite 雪碧图制作
CSS Sprite 雪碧图,简单来说就是: 为了提高网页的性能,减少加载次数,将一些不会经常随网站内容变化的小图标,集中放在一张大图上,将该图应作为background-image 嵌入页面中,在需 ...
- C++将类的构造函数、析构函数声明为private或者protected的用途
如果将构造函数.析构函数声明为private或者protected,表示不能从类的外部正常调用构造和析构函数了. 这种用法的通常使用的场景如下: 1.如果不想让外面的用户直接构造一个类A的对象,而希望 ...
- windows下 berkerly db的安装配置(修正了关键步骤)
这个是我从别人的博客上找来的,亲测可用,确实解决了我当时遇到的一些问题. 首先,从http://www.oracle.com/technology/global/cn/software/product ...
- Headfirst设计模式的C++实现——观察者模式(Observer)
WeatherData.h #ifndef WEATHERDATA_H_INCLUDED #define WEATHERDATA_H_INCLUDED #include <set> #in ...
- 11.find 查找并复制文件
请把系统上拥有者为ira用户的所有文件,并将其拷贝到/root/findfiles目录中 find /home/ira/ -user ira -exec cp -a {} /root/findfile ...
- Visual Studio 2012 使用免费的Team Foundation Service
VS2012提供了在线的TFS服务,免费支持五人小团队,收费情况尚未确定,下面本文演示如何申请和连接在线TFS 服务器. 一.申请TFS服务 首先,打开VS2012,看看是否有团队资源管理器,如果没有 ...
- seajs使用记录
关于base的默认路径: [官方说明]: 模块系统的基础路径即 base 的默认值,与 sea.js 的访问路径相关: 如果 sea.js 的访问路径是: http://example.com/ass ...
- nodejs ssh2
https://www.npmjs.com/package/ssh2 npm install ssh2 ssh2文件下载: //前台命令下发 app.get('/test/fileDownload' ...
- 强大的网络通信框架(不实现缓存)--第三方开源--AsyncHttpClient
AsyncHttpClient是一款比较流行的Android异步网路加载库,在github上的网址是:https://github.com/loopj/android-async-http但是Asyn ...
- robots.txt用法
主要作用是告诉蜘蛛爬虫该网站下哪些内容能抓取,哪些内容不能抓取.虽然可以没有robots.txt这个文件,默认就抓取该网站的所有文件,对搜索引擎爬虫没有任何的影响,但是如果你想控制蜘蛛的检索间隔,你就 ...