Java POI 导入Excell
##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相关推荐
- java poi 导入报错,Cannot get a NUMERIC value from a STRING cell
背景:在使用java的poi导入excel文件时,报错:Cannot get a NUMERIC value from a STRING cell,大致的意思就是不能从字符串的单元格获取到Number ...
- java Poi导入exel表格的数据,入库
pom依赖 导入poi依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi&l ...
- 【绝对好用】java poi 导入、导出excel(支持xsl、xslx)
1.添加依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</arti ...
- Java POI导入/导出(规则/非规则)excel
Java使用poi组件导出excel报表,能导出excel报表的还可以使用jxl组件,但jxl想对于poi功能有限,jxl应该不能载excel插入浮动层图片,poi能很好的实现输出excel各种功能, ...
- java poi导入50万数据_java从oracle读取50万条数据写入Excel中抛GC overhead limit exc
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 package com.OracleExcel; import java.sql.*; import java.io.*; import java.uti ...
- Java poi导入合并单元格的excel数据【最完整】附pom文件和excel截图
代码如下: package com.haha.demo;import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermo ...
- java poi 导入日期为空
如上两图,如果是第一种的话,可以导入,,但,如果是第二种的话,导入为空 查看,导入的文件,有这么一条 debugger发现 它把2017-11-01转为Double,转不了,出错了,所以,我在catc ...
- java poi 读取word图片,Java POI导入word, 带图片
1.导入文件示例,word中简历表格模板 2.代码示例分两部分,一部分读取图片/** * 导入word(基本信息,word格式) * @param staffId * @param baseInfoF ...
- java使用poi导入excel小数被四舍五入问题解决
出现问题:使用java poi导入带有小数的数据老是被自动的四舍五入掉,导致数据出错 解决办法:使用DecimalFormat处理被导入的数据 DecimalFormat df = new Decim ...
最新文章
- python中什么是匿名函数_python中的匿名函数
- CocoaPods更新过程中出现的坑及解决方法
- DPDK vhost-user之packed ring(六)
- mysql数据库怎样添加字段_MySQL添加字段和修改字段的方法
- Android Studio主要目录及文件简介
- Linux USB驱动框架分析 【转】
- hdu 3022 Sum of Digits
- 大数据与Hadoop的区别
- wpf ListView圆角
- perl语言入门(小骆驼)学习(一)
- 操作系统OS lab4 (xv6) 实验报告
- 联想 Thinkserver TS250服务器RAID1 重建测试
- pcd格式点云的显示程序
- 模板字符串+JS模板引擎+vue,三者之间的字符串比较
- 2.7 SLD参考标准与GeoServer扩展
- LOJ#10064. 「一本通 3.1 例 1」黑暗城堡
- PCB的安装与元器件的绘制
- 程序员为何找不到女票的原因
- 行业缩减他却增加!海尔智家研发投入创新高
- 优秀计算机基础微课案例,大学计算机基础——大学微课实用案例教学