##Java POI 导入Excell
导入表格
public String toExcel(HttpServletRequest request, HttpServletResponse response,String phone,String time,String sendListid,Integer type) throws IOException {
Map<String,Object> map=new HashMap<>();
if(time!=null && !"".equals(time)){
String time1=time.substring(0,10);
String time2=time.substring(13,23);
map.put(“time1”,time1);
map.put(“time2”,time2);
}
map.put(“phone”,phone);
map.put(“sendListid”,sendListid);
map.put(“type”,type);
List<Map<String,Object>> frequencyList = frequenceService.findAll(map);
HSSFWorkbook wb = null;

    //List<MenuTree> ZorganizeFunctionsList=organizationalFormatService.getOrganizeFunctions(organizationalFormatId);//创建第一行表头String title="抽奖列表";//创建第二行表头String[] title2={"序号","手机号","微信名","openId","金额","订单编号","时间"};//创建Excel工作簿XSSFWorkbook workbook = new XSSFWorkbook();//创建一个工作表sheetXSSFSheet sheet = workbook.createSheet("sheet0");//设置单元格宽度sheet.setColumnWidth(1,25*256);sheet.setColumnWidth(2,25*256);sheet.setColumnWidth(3,25*256);sheet.setColumnWidth(4,20*256);sheet.setColumnWidth(5,30*256);sheet.setColumnWidth(6,30*256);//创建第一行XSSFRow row = sheet.createRow(0);XSSFCell cell=row.createCell(0);row.setHeight((short) 400);// 定义单元格为字符串类型cell.setCellType(HSSFCell.ENCODING_UTF_16);cell.setCellValue(title);//合并范围,参数(起始行号<int firstRow>,终止行号<int lastRow>, 起始列号<int firstCol>,终止列号<int lastCol>).(从0开始算,0代表Excel的第一行/列)CellRangeAddress CellRange=new CellRangeAddress(0,0,0,4);sheet.addMergedRegion(CellRange);XSSFCellStyle cellStyle = workbook.createCellStyle();//指定单元格居中对齐cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//指定单元格垂直居中对齐cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//设置单元格字体XSSFFont font = workbook.createFont();font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);font.setFontName("宋体");font.setFontHeight((short) 400);cellStyle.setFont(font);//指定单元格为cellcell.setCellStyle(cellStyle);//创建第1行XSSFRow row2=sheet.createRow(1);XSSFCell cell2x=null;//插入第二行数据for (int i = 0; i < title2.length; i++) {cell2x= row2.createCell(i);cell2x.setCellValue(title2[i]);cell2x.setCellStyle(cellStyle);}int flay=2;for(Map<String,Object> frequency:frequencyList){XSSFRow row3=sheet.createRow(flay);//排行XSSFCell GCell=row3.createCell(0);GCell.setCellValue(flay-1);//手机XSSFCell ACell=row3.createCell(1);ACell.setCellValue(frequency.get("phone").toString());//微信名称XSSFCell BCell=row3.createCell(2);BCell.setCellValue(frequency.get("weName").toString());//openIdXSSFCell CCell=row3.createCell(3);CCell.setCellValue(frequency.get("openId").toString());//金额XSSFCell DCell=row3.createCell(4);DCell.setCellValue(frequency.get("moneys").toString());//订单编号XSSFCell ECell=row3.createCell(5);if (frequency.get("sendListid")!=null){ECell.setCellValue(frequency.get("sendListid").toString());}else {ECell.setCellValue("");}//时间XSSFCell FCell=row3.createCell(6);FCell.setCellValue(StringUtil.dateToString1((Date) frequency.get("createTime")));XSSFCellStyle cellStyle2 = workbook.createCellStyle();//指定单元格居中对齐cellStyle2.setAlignment(HSSFCellStyle.ALIGN_CENTER);//指定单元格垂直居中对齐cellStyle2.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//指定单元格为ACellFCell.setCellStyle(cellStyle2);ACell.setCellStyle(cellStyle2);BCell.setCellStyle(cellStyle2);CCell.setCellStyle(cellStyle2);DCell.setCellStyle(cellStyle2);ECell.setCellStyle(cellStyle2);FCell.setCellStyle(cellStyle2);GCell.setCellStyle(cellStyle2);flay+=1;}//String pathUrl=request.getSession().getServletContext().getRealPath("");//存放的路径String path1 = ResourceBundleUtil.getString("system", "fileupload.path");// File oldFile = new File(pathUrl).getParentFile();String fileName2="抽奖列表";//获取当前系统路径分隔符//String s=File.separator;//String pathUrl2=pathUrl.substring(0,pathUrl.lastIndexOf(s));String message="file/"+ fileName2 + ".xls";File file=new File(path1,message);try {file.createNewFile();//打开文件输出流FileOutputStream fos = FileUtils.openOutputStream(file);//将workbook写入流workbook.write(fos);fos.flush();fos.close();} catch (IOException e) {e.printStackTrace();}// String fileName=pathUrl2+s+"file"+s+fileName2+".xls";String fileName=path1+"/"+message;String downloadFilename=fileName2+".xls";FileDownLoadUtil.downLoad(response, fileName, downloadFilename);return null;}

2.工具类

import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLEncoder;

/**
*

  • 该工具类实现文件的下载,文档、图片均可
    @
    /
    public class FileDownLoadUtil {
    /

    • @param response

    • @param fileName 完整文件路径

    • @param downloadFilename 在下载框默认显示的文件名–中文是没有问题的,带后缀名

    • 注意:文件名拼接的时候注意,不同的系统的斜杠不同,使用File.separator自动识别

    • @throws IOException
      */
      public static void downLoad(HttpServletResponse response,String fileName,String downloadFilename) throws IOException{

      // 对默认下载的文件名编码。不编码的结果就是,在客户端下载时文件名乱码
      downloadFilename = URLEncoder.encode(downloadFilename, “UTF-8”);

      File file = new File(fileName);
      if (file.exists()) {
      // 写明要下载的文件的大小
      response.setContentLength((int) file.length());
      // 设置在下载框默认显示的文件名
      response.setHeader(“Content-Disposition”, “attachment;filename=”
      + downloadFilename);
      // 指明response的返回对象是文件流
      response.setContentType(“application/octet-stream”);
      // 读出文件到response
      // 这里是先需要把要把文件内容先读到缓冲区
      // 再把缓冲区的内容写到response的输出流供用户下载
      FileInputStream fileInputStream = new FileInputStream(file);
      BufferedInputStream bufferedInputStream = new BufferedInputStream(
      fileInputStream);
      byte[] b = new byte[bufferedInputStream.available()];
      bufferedInputStream.read(b);
      OutputStream outputStream = response.getOutputStream();
      outputStream.write(b);
      // 人走带门
      bufferedInputStream.close();
      outputStream.flush();
      outputStream.close();
      }

    }

}

Java POI 导入Excell相关推荐

  1. java poi 导入报错,Cannot get a NUMERIC value from a STRING cell

    背景:在使用java的poi导入excel文件时,报错:Cannot get a NUMERIC value from a STRING cell,大致的意思就是不能从字符串的单元格获取到Number ...

  2. java Poi导入exel表格的数据,入库

    pom依赖 导入poi依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi&l ...

  3. 【绝对好用】java poi 导入、导出excel(支持xsl、xslx)

    1.添加依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</arti ...

  4. Java POI导入/导出(规则/非规则)excel

    Java使用poi组件导出excel报表,能导出excel报表的还可以使用jxl组件,但jxl想对于poi功能有限,jxl应该不能载excel插入浮动层图片,poi能很好的实现输出excel各种功能, ...

  5. java poi导入50万数据_java从oracle读取50万条数据写入Excel中抛GC overhead limit exc

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 package com.OracleExcel; import java.sql.*; import java.io.*; import java.uti ...

  6. Java poi导入合并单元格的excel数据【最完整】附pom文件和excel截图

    代码如下: package com.haha.demo;import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermo ...

  7. java poi 导入日期为空

    如上两图,如果是第一种的话,可以导入,,但,如果是第二种的话,导入为空 查看,导入的文件,有这么一条 debugger发现 它把2017-11-01转为Double,转不了,出错了,所以,我在catc ...

  8. java poi 读取word图片,Java POI导入word, 带图片

    1.导入文件示例,word中简历表格模板 2.代码示例分两部分,一部分读取图片/** * 导入word(基本信息,word格式) * @param staffId * @param baseInfoF ...

  9. java使用poi导入excel小数被四舍五入问题解决

    出现问题:使用java poi导入带有小数的数据老是被自动的四舍五入掉,导致数据出错 解决办法:使用DecimalFormat处理被导入的数据 DecimalFormat df = new Decim ...

最新文章

  1. python中什么是匿名函数_python中的匿名函数
  2. CocoaPods更新过程中出现的坑及解决方法
  3. DPDK vhost-user之packed ring(六)
  4. mysql数据库怎样添加字段_MySQL添加字段和修改字段的方法
  5. Android Studio主要目录及文件简介
  6. Linux USB驱动框架分析 【转】
  7. hdu 3022 Sum of Digits
  8. 大数据与Hadoop的区别
  9. wpf ListView圆角
  10. perl语言入门(小骆驼)学习(一)
  11. 操作系统OS lab4 (xv6) 实验报告
  12. 联想 Thinkserver TS250服务器RAID1 重建测试
  13. pcd格式点云的显示程序
  14. 模板字符串+JS模板引擎+vue,三者之间的字符串比较
  15. 2.7 SLD参考标准与GeoServer扩展
  16. LOJ#10064. 「一本通 3.1 例 1」黑暗城堡
  17. PCB的安装与元器件的绘制
  18. 程序员为何找不到女票的原因
  19. 行业缩减他却增加!海尔智家研发投入创新高
  20. 优秀计算机基础微课案例,大学计算机基础——大学微课实用案例教学

热门文章

  1. 江开计算机应用基础第二次形考,江开计算机应用基础第二次形考作业
  2. LVC | 一种简单的小样本目标检测方法
  3. matlab根据y标注x,知道y的值,怎么标注出对应x值所对应曲线的坐标啊;matlab
  4. 踌躇满志 未来可期 华云数据广西公司正式乔迁
  5. 一些短信,权当休息使用
  6. linux 格式化工具 mkfs 简介
  7. 机器学习-推荐系统-利用用户标签数据
  8. 容器部署在物理机还是虚拟机上?
  9. OWT在企业远程智能视频服务场景中的应用
  10. 原生JavaScript实现entries和fromEntries