展开全部

以下代码仅供参考:

//生成一个excel文件

WritableWorkbook wwb = null;

try {

//首先要使用Workbook类的工厂方法创建一个可写入62616964757a686964616fe59b9ee7ad9431333332643335的工作薄(Workbook)对象

wwb = Workbook.createWorkbook(new File(fileName));

} catch (IOException e) {

log.error(e); }

long totle = service.getTotle(searchParameters);//业务逻辑方法,获取总数,便于在excel分多个工作表

//按65536条数据分页

float res=Float.parseFloat(String.valueOf(totle));

float mus=65536;

float avg=res/mus;

Map cols = (Map) request.getSession().getAttribute("columnsMap"); //业务逻辑方法

for (int i = 0; i < avg+1; i++) {

searchParameters.setEvent_id(String.valueOf(i*mus)); //分页查询条件

searchParameters.setTotalLimit(String.valueOf((i+1)*mus));//分页查询条件

List result = service.getEvents(searchParameters); //分页查询方法

if(wwb!=null){

//创建一个可写入的工作表

//Workbook的createSheet方法有两个参数,第一个是工作表的名称,第二个是工作表在工作薄中的位置

WritableSheet ws = wwb.createSheet("列表"+(i+1), i);

String colss = ((String) cols.get("cols")).substring("selected"

.length() + 1);

String[] columns = colss.split(","); //业务逻辑方法(添加标题)

String[] colNames = ((String) cols.get("colNames")).split(",");

for (int j = 0; j < columns.length; j++) {

jxl.write.WritableFont wfc = new jxl.write.WritableFont(WritableFont.ARIAL,10,WritableFont.NO_BOLD,false,jxl.format.UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.BLACK);

jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc);

wcfFC.setBackground(Colour.GRAY_25);

Label label = new Label(j, 0,colNames[j],wcfFC);

ws.setColumnView(j, 20); //设置列宽

ws.addCell(label); //添加标题

}

String str="";

//下面开始添加单元格

for(int m=0;m

for(int j=0;j

Map map = (Map) result.get(m);

//在表格中添加(业务数据)

for (Object key : map.keySet()) {

Object val = map.get(key);

str=String.valueOf(val);

//这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行

Label labelC = new Label(j, m+1, str);

//将生成的单元格添加到工作表中

ws.addCell(labelC);

}

}

}

}

}

//Excel操作完毕之后,关闭所有的操作资源

try {

//从内存中写入文件中

wwb.write();

//关闭资源,释放内存

wwb.close();

} catch (IOException e) {

log.error(e);

} catch (WriteException e) {

log.error(e);

}

//把生成的文件下载

File file = new File(fileName);

if(!file.exists()) throw new Exception("文件不存在!");

FileInputStream fileInputStream = new FileInputStream(file);

BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);

OutputStream outputStream = response.getOutputStream();

BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(outputStream);

response.setContentType("application/x-download");

response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode("事件列表.xls", "UTF-8"));

int bytesRead = 0;

byte[] buffer = new byte[8192];

while ((bytesRead = bufferedInputStream.read(buffer, 0, 8192)) != -1) {

bufferedOutputStream.write(buffer, 0, bytesRead);

}

bufferedOutputStream.flush();

fileInputStream.close();

bufferedInputStream.close();

outputStream.close();

bufferedOutputStream.close();

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

java sheet类_java excel 导出 多个sheet相关推荐

  1. java实现数据的Excel导出, 自定义导出字段, 转换字典值

    java实现数据的Excel导出, 自定义导出字段, 转换字典值 第一版代码: 基础功能跳转此文章java自定义Excel导出工具: 简介 新增功能: 添加自定义字段导出功能, 用户可以选择字段进行导 ...

  2. vue+Java 实现前后端Excel导出

    vue+Java 实现前后端Excel导出 1. 按钮设置 使用avue的导出功能可以查看官网 https://www.avuejs.com/default/export.html 我这里使用的是自定 ...

  3. java 导入excel工具类_java Excel工具类,导入导出Excel数据

    java Excel工具类,导入导出Excel数据,导入数据对合并表格有判断获取数据: 导出数据到Excel,Excel文件不存在会创建. 使用的是poi处理,兼容Excel. 对反射不够理解,目前先 ...

  4. 后台excel导出(单sheet 多sheet)

    //单sheet调用模板public void exportInfo(String ids,HttpServletResponse response) { try {//单元格列头String[] r ...

  5. JAVA生成甘特图Excel导出

    JAVA生成甘特图EXCEL 场景:以甘特图的方式,可以直观的看到任务的进展情况,资源的利用率等等,它也能帮助你考虑人力.资源.日期.项目中重复的要素和关键的部分 领域:如今甘特图不单单被应用到生产管 ...

  6. 「Java工具类」pdf导出工具类java导出pdf文件工具类

    介绍语 本号主要是Java常用关键技术点,通用工具类的分享:以及springboot+springcloud+Mybatisplus+druid+mysql+redis+swagger+maven+d ...

  7. Java实现千万级Excel导出(含POI下载地址)

    基于Java实现千万级Excel数据导出,目前有很多的实现方式,本文主要介绍基于POI的实现方式. POI常用的两种对象分别为HSSFWorkbook 和SXSSFWorkbook,简要介绍如下: H ...

  8. EasyExcel实现excel导出(多sheet)

    EasyExcel官方地址: EasyExcel官方文档 - 基于Java的Excel处理工具 | Easy ExcelEasyExcel是一个基于Java的.快速.简洁.解决大文件内存溢出的Exce ...

  9. js-xlsx 读取和导出excel实现前端 Excel 导出(支持多 sheet)

    之前写文章介绍了使用 js-xlsx 实现导入 excel 的功能,现在再介绍一下如何使用 js-xlsx 进行 excel 导出. [实现步骤] 1. 首先安装依赖 npm install xlsx ...

最新文章

  1. [20180408]那些函数索引适合字段的查询.txt
  2. 热点账户问题和常用解决方案【上】
  3. 虚拟机ubuntu搭建ftp服务器配置,虚拟机VMware15 Ubuntu18.04 搭建FTP服务器
  4. 内容营销的21条黄金法则
  5. AppCompat DayNight theme
  6. python求txt文件内平均值_使用Python计算.txt文件中的数字的平均值
  7. vector的简单实现
  8. Java并发编程之堵塞队列介绍以及SkipList(跳表)
  9. Swing写qq聊天软件(想要QQ表情@我呦)
  10. java thread detach_Java多线程小结
  11. 计算机的硬盘材料,电脑坏了把硬盘资料转移到新硬盘的方法
  12. 论文管理软件 Zotero 备忘
  13. xp系统整个计算机非常慢,xp系统电脑运行慢太卡了怎么办|xp系统运行卡顿的解决方法...
  14. 向量场的散度和旋度_矢量场散度和旋度的物理意义
  15. html 显示动态时间
  16. [Excel函数] INDEX函数 | MATCH函数
  17. 网页设计css导航链接怎么做,如何用DIV+CSS制作导航条
  18. Scrapy入门到放弃06:Spider中间件
  19. 折线和柱状(自定义图案)结合
  20. 安卓苹果通用高兼容性蓝牙耳机,双11新款高人气蓝牙耳机推荐

热门文章

  1. DPDK笔记 RSS(receive side scaling)网卡分流机制
  2. 轻松解决远程链接的“Gtk-WARNING **: cannot open display;”或“Cannot connect to display;”问题
  3. 数据可视化的图表实现
  4. python怎么和数据库连接_Java和Python都怎么连接数据库
  5. 地图标记点击成超链接_纯干货!株洲100多家美食地图!国庆收藏!
  6. python计算器程序代码_7_python之路之python计算器
  7. java设计模式之美_《设计模式之美》-笔记
  8. 语言防止鼠标连点_全球化设计系列 | 多语言设计的“小锦囊”
  9. 散粉在哪个步骤用_底妆的正确步骤是什么?花三分钟带你破译底妆密码
  10. OpenShift 4 - Fedora CoreOS (5) - CoreOS的常规操作