controller:

    /*** 导出报表* @return*/@RequestMapping(value = "/export")@ResponseBodypublic void export(HttpServletRequest request,HttpServletResponse response, String id, String auditno) throws Exception {/*jxlString headers = "";String[] array = addEmpService.returnStringArray(id);jxl.createTable(headers, array, "F:\\qq"+auditno+".xls");*///获取数据List<EmpAuditDetails> list = addEmpService.queryDetailsById(id);//excel标题String[] title = {"姓名","身份证号码","性别","出生日期","保险缴费基数","工种","增员年月","增员原因","手机号","紧急联系人","紧急联系电话","家庭住址","通讯地址省级","通讯地址市级","通讯地址区县级","通讯地址补充信息","户口所在地省级","户口所在地市级","户口所在地区县级","户口所在地补充信息"};//excel文件名String fileName = auditno+".xls";//sheet名String sheetName = auditno;String [][] content = new String[list.size()][];for (int i = 0; i < list.size(); i++) {content[i] = new String[title.length];content[i][0] = list.get(i).getName();content[i][1] = list.get(i).getIdno();content[i][2] = list.get(i).getSex();content[i][3] = list.get(i).getBirth();content[i][4] = String.valueOf(list.get(i).getInsuranceBase());content[i][5] = list.get(i).getJob();content[i][6] = DateUtils.convertDateToString(list.get(i).getAddYm(),"yyyy-MM-dd");content[i][7] = list.get(i).getAddReason();content[i][8] = list.get(i).getPhone();content[i][9] = list.get(i).getLink();content[i][10] = list.get(i).getLinkphone();content[i][11] = list.get(i).getAddress();content[i][12] = list.get(i).getProvince();content[i][13] = list.get(i).getCity();content[i][14] = list.get(i).getDistrict();content[i][15] = list.get(i).getAddressExtra();content[i][16] = list.get(i).getNativeProvince();content[i][17] = list.get(i).getNativeCity();content[i][18] = list.get(i).getNativeDistrict();content[i][19] = list.get(i).getNativeExtra();}//创建HSSFWorkbookHSSFWorkbook wb = ExcelUtil.getHSSFWorkbook(sheetName, title, content, null);//响应到客户端try {ResponseUtil.setResponseHeader(response, fileName);OutputStream os = response.getOutputStream();wb.write(os);os.flush();os.close();} catch (Exception e) {e.printStackTrace();}}

excelutil

package com.lf.common.utils;import java.sql.ResultSet;
import java.util.List;
import java.util.Map;import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;public class ExcelUtil {/*** 导出Excel* @param sheetName sheet名称* @param title 标题* @param values 内容* @param wb HSSFWorkbook对象* @return*/public static HSSFWorkbook getHSSFWorkbook(String sheetName,String []title,String [][]values, HSSFWorkbook wb){// 第一步,创建一个HSSFWorkbook,对应一个Excel文件if(wb == null){wb = new HSSFWorkbook();}// 第二步,在workbook中添加一个sheet,对应Excel文件中的sheetHSSFSheet sheet = wb.createSheet(sheetName);// 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制HSSFRow row = sheet.createRow(0);// 第四步,创建单元格,并设置值表头 设置表头居中HSSFCellStyle style = wb.createCellStyle();style.setAlignment(HSSFCellStyle.ALIGN_CENTER);HSSFFont font=(HSSFFont) wb.createFont();font.setColor(HSSFColor.RED.index);style.setFont(font);// 创建一个居中格式//声明列对象HSSFCell cell = null;//创建标题for(int i=0;i<title.length;i++){cell = row.createCell(i);cell.setCellValue(title[i]);cell.setCellStyle(style);}//创建内容for(int i=0;i<values.length;i++){row = sheet.createRow(i + 1);for(int j=0;j<values[i].length;j++){//将内容按顺序赋给对应的列对象
                    row.createCell(j).setCellValue(values[i][j]);}}return wb;}}

ResponseUtil:
package com.lf.common.utils;import org.apache.poi.ss.usermodel.Workbook;import javax.servlet.http.HttpServletResponse;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;public class ResponseUtil {public static void write(HttpServletResponse response, Object o) throws Exception {response.setContentType("text/html;charset=utf-8");PrintWriter out = response.getWriter();out.println(o.toString());out.flush();out.close();}public static void export(HttpServletResponse response, Workbook wb, String fileName) throws Exception{//设置头  固定格式response.setHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes("utf-8"), "iso8859-1"));response.setContentType("text/html;charset=utf-8");OutputStream out = response.getOutputStream();wb.write(out);out.flush();out.close();}//发送响应流方法public static void setResponseHeader(HttpServletResponse response, String fileName) {try {try {fileName = new String(fileName.getBytes(),"ISO8859-1");} catch (UnsupportedEncodingException e) {e.printStackTrace();}response.setContentType("application/octet-stream;charset=ISO8859-1");response.setHeader("Content-Disposition", "attachment;filename="+ fileName);response.addHeader("Pargam", "no-cache");response.addHeader("Cache-Control", "no-cache");} catch (Exception ex) {ex.printStackTrace();}}
}

jxl:

package  com.lf.common.utils;import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;import org.springframework.stereotype.Service;import com.lf.utils.DateUtils;import jxl.CellView;
import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.UnderlineStyle;
import jxl.read.biff.BiffException;
import jxl.write.Border;
import jxl.write.BorderLineStyle;
import jxl.write.Colour;
import jxl.write.Label;
import jxl.write.NumberFormats;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
@Service
public class JxlWriteExcel {public boolean createTable(String header, String[] body, String filePath) {boolean createFlag = true;WritableWorkbook book;try {// 根据路径生成excel文件book = Workbook.createWorkbook(new File(filePath));// 创建一个sheet名为"表格"WritableSheet sheet = book.createSheet("表格", 0);// 设置NO列宽度// 去掉整个sheet中的网格线sheet.getSettings().setShowGridLines(false);Label tempLabel = null;// 表头输出String[] headerArr = header.split(",");int headerLen = headerArr.length;// 循环写入表头内容for (int i = 0; i < headerLen; i++) {tempLabel = new Label( i, 0, headerArr[i],getHeaderCellStyle());sheet.addCell(tempLabel);sheet.setColumnView(i, 30);}// 表体输出int bodyLen = body.length;// 循环写入表体内容for (int j = 0; j < bodyLen; j++) {String[] bodyTempArr = body[j].split(",");for (int k = 0; k < bodyTempArr.length; k++) {WritableCellFormat tempCellFormat = null;tempCellFormat = getBodyCellStyle();if (tempCellFormat != null) {if (k == 0 || k == (bodyTempArr.length - 1)) {tempCellFormat.setAlignment(Alignment.CENTRE);}}tempLabel = new Label( k, 1 + j, bodyTempArr[k],tempCellFormat);sheet.addCell(tempLabel);}}book.write();book.close();} catch (IOException e) {createFlag = false;System.out.println("EXCEL创建失败!");e.printStackTrace();} catch (RowsExceededException e) {createFlag = false;System.out.println("EXCEL单元设置创建失败!");e.printStackTrace();} catch (WriteException e) {createFlag = false;System.out.println("EXCEL写入失败!");e.printStackTrace();}return createFlag;}public  boolean  createErroeTable(String header, String[] body, String filePath ,String sheetName,int sheetNum) {boolean createFlag = true;WritableWorkbook book ;WritableSheet sheet = null ;File errorFile = new File(filePath);try {if (errorFile.exists()) {Workbook workbook = Workbook.getWorkbook(errorFile);book =  workbook.createWorkbook(errorFile,workbook);sheet = book.createSheet(sheetName, 1);}else {         // 根据路径生成excel文件book = Workbook.createWorkbook(errorFile);// 创建一个sheet名为"表格"sheet = book.createSheet(sheetName, sheetNum);}// 设置NO列宽度// 去掉整个sheet中的网格线sheet.getSettings().setShowGridLines(false);Label tempLabel = null;// 表头输出String[] headerArr = header.split(",");int headerLen = headerArr.length;// 循环写入表头内容for (int i = 0; i < headerLen; i++) {tempLabel = new Label( i, 0, headerArr[i],getHeaderCellStyle());sheet.addCell(tempLabel);sheet.setColumnView(i, 30);}// 表体输出int bodyLen = body.length;// 循环写入表体内容for (int j = 0; j < bodyLen; j++) {String[] bodyTempArr = body[j].split(",");for (int k = 0; k < bodyTempArr.length; k++) {WritableCellFormat tempCellFormat = null;tempCellFormat = getBodyCellStyle();if (tempCellFormat != null) {if (k == 0 || k == (bodyTempArr.length - 1)) {tempCellFormat.setAlignment(Alignment.CENTRE);}}tempLabel = new Label( k, 1 + j, bodyTempArr[k],tempCellFormat);sheet.addCell(tempLabel);}}book.write();book.close();} catch (IOException e) {createFlag = false;System.out.println("EXCEL创建失败!");e.printStackTrace();} catch (RowsExceededException e) {createFlag = false;System.out.println("EXCEL单元设置创建失败!");e.printStackTrace();} catch (WriteException e) {createFlag = false;System.out.println("EXCEL写入失败!");e.printStackTrace();} catch (BiffException e) {System.out.println("读取EXCEL对象失败!");e.printStackTrace();}return createFlag;}public WritableCellFormat getHeaderCellStyle() {WritableFont font = new WritableFont(WritableFont.createFont("宋体"), 10,WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE);WritableCellFormat headerFormat = new WritableCellFormat(NumberFormats.TEXT);try {// 添加字体设置
           headerFormat.setFont(font);// 设置单元格背景色:表头为黄色
           headerFormat.setBackground(Colour.YELLOW);// 设置表头表格边框样式// 整个表格线为粗线、黑色
           headerFormat.setBorder(Border.ALL, BorderLineStyle.THICK,Colour.BLACK);// 表头内容水平居中显示
           headerFormat.setAlignment(Alignment.CENTRE);} catch (WriteException e) {System.out.println("表头单元格样式设置失败!");}return headerFormat;}public WritableCellFormat getBodyCellStyle() {WritableFont font = new WritableFont(WritableFont.createFont("宋体"), 10,WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE);WritableCellFormat bodyFormat = new WritableCellFormat(font);try {// 设置单元格背景色:表体为白色
           bodyFormat.setBackground(Colour.WHITE);// 设置表头表格边框样式// 整个表格线为细线、黑色
           bodyFormat.setBorder(Border.ALL, BorderLineStyle.THIN, Colour.BLACK);} catch (WriteException e) {System.out.println("表体单元格样式设置失败!");}return bodyFormat;}public void deleteFile(String fileName){File file = new File(fileName);if(file.exists()){file.delete();System.out.println("删除文件成功");}else{System.out.println("文件不存在");}}/*** 创建表格* @module:* @author: ZhangK* @date: Aug 1, 2016*/public String createTableByZk(String header, String[] body, String filePath) {WritableWorkbook book;String date = DateUtils.convertDateToString(new Date(), "yyyyMMddHHmmssSSS");String fileName=date+".xls";File file = null;if (fileName !=null|| "".equals(fileName)) {            file = new File(fileName);}else{return null;}try {// 根据路径生成excel文件book = Workbook.createWorkbook(file);// 创建一个sheet名为"表格"WritableSheet sheet = book.createSheet("发货情况", 0);           // 去掉整个sheet中的网格线sheet.getSettings().setShowGridLines(false);Label tempLabel = null;// 表头输出String[] headerArr = header.split(",");int headerLen = headerArr.length;// 循环写入表头内容CellView cv = null;for (int i = 0; i < headerLen; i++) {tempLabel = new Label(i, 0, headerArr[i],getHeaderCellStyle());sheet.addCell(tempLabel);// 设置NO列宽度sheet.setColumnView(i, 15);}// 表体输出int bodyLen = body.length;// 循环写入表体内容for (int j = 0; j < bodyLen; j++) {String[] bodyTempArr = body[j].split(",");for (int k = 0; k < bodyTempArr.length; k++) {WritableCellFormat tempCellFormat = null;tempCellFormat = getBodyCellStyle();if (tempCellFormat != null) {if (k == 0 || k == (bodyTempArr.length - 1)) {tempCellFormat.setAlignment(Alignment.CENTRE);}}tempLabel = new Label( k, 1 + j, bodyTempArr[k],tempCellFormat);sheet.addCell(tempLabel);}}book.write();book.close();} catch (IOException e) {fileName = null;System.out.println("EXCEL创建失败!");e.printStackTrace();} catch (RowsExceededException e) {fileName = null;System.out.println("EXCEL单元设置创建失败!");e.printStackTrace();} catch (WriteException e) {fileName = null;System.out.println("EXCEL写入失败!");e.printStackTrace();}return fileName;}/*** list<map>去重* @param list* @param param_list* @return*/public String[] RemoveDuplicate(List<Map<String, String>> list,List<String> param_list) {List<Map<String, String>> listMap = new ArrayList<Map<String, String>>();Set<Map> setMap = new HashSet<Map>();for (Map<String, String> map1 : list) {if (setMap.add(map1)) {listMap.add(map1);}}String[] rowData_retail = new String[listMap.size()];for (int i = 0; i < listMap.size(); i++) {Map<String, String> map = listMap.get(i);for (int j = 0; j < param_list.size(); j++) {String param_i = map.get(param_list.get(j));param_i  = map.get(param_list.get(j)) == null ? "" : map.get(param_list.get(j));if (j == param_list.size() -1) {rowData_retail[i] = rowData_retail[i] + param_i ;}else if (j==0) {rowData_retail[i] =  param_i + ",";}else {rowData_retail[i] = rowData_retail[i] + param_i + ",";}}}return rowData_retail;}public static void main(String[] args) throws IOException {}
}


转载于:https://www.cnblogs.com/NCL--/p/9448706.html

poi 和jxl导出excel(2)相关推荐

  1. java导出excel带图片_JAVA的poi实现模版导出excel(带图片).doc

    JAVA的poi实现模版导出excel(带图片) 下面是本人使用java的poi实现使用模板到处excel,内容包含图片,使用两种不同的方式实现其到处excel.但是使用jxl实现到处excel只能到 ...

  2. java中使用jxl导出excel表格的工具类(全网唯一亲测可用,在原来基础上扩展)

    java中后台导出excel的话,有两种方案,一是使用poi(不过由于是windows版本的,存在不兼容,但功能更多,更强大),而是使用jxl(纯java编写,不过兼容,简单一些),可以设置输出的ex ...

  3. Java中使用poi导入、导出Excel

    Java中使用poi导入.导出Excel 学习了:http://www.cnblogs.com/Damon-Luo/p/5919656.html 转载于:https://www.cnblogs.com ...

  4. java jxl导出excel小结

    废话不多说,先上代码: package cn.com.jsoft.utils;import java.io.OutputStream; import java.io.UnsupportedEncodi ...

  5. 使用easypoi和原生poi接口实现导出excel时选中指定单选框

    使用easypoi和原生poi接口实现导出excel时选中指定单选框 工程需求:导出excel时,选中指定的单选框 步骤一:在excel模板中插入三个单选框 步骤二:设置单选框的单元格连接 我们发现 ...

  6. JXL导出Excel内容为空

    前天,朋友问了我一个问题,jxl导出Excel为什么内容为空,刚开始觉得没有那么难得,结果花了一早上也没解决,第二天知道真相的我,眼泪掉下来. 现在写下代码吧,看看大家能不能找到 /* 报表导出* @ ...

  7. JAVA语言(POI数据导入导出Excel)

    POI数据导入导出Excel(样式可以自己设置) //----------------------------Controller层 --------------------------------- ...

  8. POI导入和导出Excel总结

    POI导入和导出Excel总结 POI使用总结 1.POI读取Excel 打开工作簿的方式有以下两种简单的应用,POI读取和输出工作簿文件都可以通过以下两种方式来声明: //通过输入流的方式打开本地磁 ...

  9. java excel导出 jxl_java使用JXL导出Excel及合并单元格

    jxl是一个韩国人写的java操作excel的工具,在开源世界中,有两套比较有影响的API可供使用,一个是POI,一个是jExcelAPI.其中功能相对POI比较弱一点.但jExcelAPI对中文支持 ...

  10. java使用POI工具类导出excel

    POI导出excel 1.导入maven依赖 <dependency><groupId>org.apache.poi</groupId><artifactId ...

最新文章

  1. python画相关性可视化图上三角_完成这50个Matplotlib代码,你也能画出优秀的图表...
  2. 4 计算机组成原理第三章 存储系统 高速缓冲存储器 虚拟存储器
  3. 达摩院最新AI技术助力天猫双11,提供接近真人的语音交互体验
  4. Enterprise Solution 应用程序开发框架培训
  5. 【USACO 2.3.4】Cow Tours 牛的旅行
  6. 爬虫运行成功但没数据_我整来了几台服务器,就是为了给你演示一下分布式爬虫的整个过程...
  7. 手把手教,使用Oracle VM VirtualBox虚拟机安装Windows XP系统,爷青回
  8. flex:1属性是什么意思
  9. Nuvoton M0518 之 Slave SPI通信注意事项
  10. 【跨境电商】EDM邮件营销完整指南(一):概念,区别与优势
  11. CodeForces - 140C New Year Snowmen
  12. android11obb,exagear安卓11数据包obb合集版
  13. Android无线调试 Wifi连接ADB不用数据线
  14. GhostXP_SP3完整纯净版V3.5 By songyongzhi
  15. c语言怎么返回数组,c++从函数返回数组的方法代码
  16. Cypher制作数据-武汉地铁二号线
  17. MyISAM InnoDB 怎么读
  18. CentOS 8.1安装MySQL 8.0详解
  19. iOS POS之3DES加密
  20. 经典逗女孩子的暴笑短信

热门文章

  1. springsecurity安全登录框架
  2. Hibernate事务与并发问题处理(乐观锁与悲观锁)
  3. go lang chrome 爬虫 (MAC 系统)
  4. python登录界面代码_超酷 Python 程序包 ,一行代码实现 GUI 界面
  5. 4.28下午 听力611
  6. angular-route 和soket注意细节点
  7. Ubuntu U盘启动出现“Failed to load ldlinux.c32”解决
  8. geatpy - 遗传和进化算法相关算子的库函数(python)
  9. kudu导入文件(基于impala)
  10. 动态规划--矩阵链乘法