- 浏览: 760084 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
飞出四季做的茧:
z赞
JAVA日期格式化字符串的24小时制 -
daniaowansui:
亲测,可行!
JS 在open打开的窗口中调用父页面JS方法 -
zh_123:
ie9测试过吗貌似列不能冻结啊!
Css 实现的表头, 表列冻结, 可以超大数据量 -
Jxdwuao:
IXR 写道少年,在哪里混呢?在虹桥机场这边阿, 兄弟你在何方 ...
修改JS文件FF刷新不生效 -
IXR:
少年,在哪里混呢?
修改JS文件FF刷新不生效
需要把320排班表导出到 EXCEL
使用的是 JXL
系统中已经有了一个工具类可以把 List 的 数据写入到 INPUTSTREAM中。
定义好表头和对应的字段名称。
ByteArrayOutputStream stream = new ByteArrayOutputStream(); String[] titleNames = new String[]{"XXX", "XXXX", "XXXXX", "XXXX", "XXXX"}; String[] fields = new String[]{"flixxxxNo", "flxxxxDate", "pxxxxtName", "coxxCount", "shxxtCxxnt"}; List<CrewAssignLogDetail2> details = crewAssignLogService.queryAssignLogDetail2sByAssignLogId(assignLogId); ExcelWriter.writeExcel(stream, titleNames, fields, details); InputStream is = new ByteArrayInputStream(stream.toByteArray());
但是, 发现这种只支持属性为数据立即可取, 我这边许多的属性是List类型, 不能直接得到。
于是改造,把字段和属性写到MAP中,
ByteArrayOutputStream stream = new ByteArrayOutputStream(); String[] titleNames = new String[]{"套组编号", "批次", "组基准月", "单位", "姓名", "可排月", "技术标准", "单位", "姓名", "可排月", "技术标准", "报到日期", "日期", "内容", "日期", "内容", "日期", "内容", "日期", "时间", "场次", "教员", "单位", "日期", "时间", "场次", "教员", "单位", "日期", "时间", "场次", "检察员", "单位", "执照签注类型"}; String[] fields = new String[]{"suite_no", "batch_no", "bench_Month", "unitName0", "pilotName0", "month0", "technicalStandard0", "unitName1", "pilotName1", "month1", "technicalStandard1",//学员 "checkin_date", "t_date0", "t_content0", "t_date1", "t_content1", "t_date2", "t_content2",//理论课 "s_date0", "s_time0", "s_no0", "teacherName0", "unitName0", //场次 "s_date1", "s_time1", "s_no1", "teacherName1", "unitName1", "s_date2", "s_time2", "s_no2", "teacherName2", "unitName2", "sign_property"}; List<Map<String, Object>> mapList = new ArrayList<Map<String,Object>>(); for(SuitAdminView suitView : simulatorResList){ Map<String, Object> map = new HashMap<String, Object>(); map.put("suite_no", suitView.getSuite_no());map.put("batch_no", suitView.getBatch_no());map.put("bench_Month", suitView.getBench_Month()); for(int i=0;i<suitView.getStudentList().length;i++){ map.put("unitName"+i, suitView.getStudentList()[i].getUnitName()); map.put("pilotName"+i, suitView.getStudentList()[i].getPilotName()); map.put("month"+i, suitView.getStudentList()[i].getMonth()); map.put("technicalStandard"+i, suitView.getStudentList()[i].getTechnicalStandard()); } map.put("checkin_date", suitView.getCheckin_date()); for(int i=0;i<suitView.getTheoryDesViewList().length;i++){ map.put("t_date"+i, suitView.getTheoryDesViewList()[i].getT_date()); map.put("t_content"+i, suitView.getTheoryDesViewList()[i].getT_content()); } for(int i=0;i<suitView.getTraining_simDesViewList().length;i++){ map.put("s_date"+i, suitView.getTraining_simDesViewList()[i].getS_date()); map.put("s_time"+i, suitView.getTraining_simDesViewList()[i].getS_time()); map.put("s_no"+i, suitView.getTraining_simDesViewList()[i].getS_no()); map.put("teacherName"+i, suitView.getTraining_simDesViewList()[i].getTeacherName()); map.put("unitName"+i, suitView.getTraining_simDesViewList()[i].getUnitName()); } mapList.add(map); } A320ExcelWriter.writeExcel(stream, titleNames, fields, mapList); is = new ByteArrayInputStream(stream.toByteArray()); fileName = URLEncoder.encode((fixed_year + "A320总排班.xls"),GlobalConfig.getDefaultWebEncoding());
输出之后, 发现文本格式的单元格双击后, 会变成数字格式的。
查到需要用一个格式设置类
WritableCellFormat cellFormat = new WritableCellFormat(NumberFormats.TEXT); new Label(column, row, String.valueOf(object), cellFormat);
通过阅读jxl文档,问题已经解决,附代码如下:
WritableCellFormat contentFromart = new WritableCellFormat(NumberFormats.TEXT);
jxl.write.Label labelCFC2 = new jxl.write.Label(0,15, " 01234567890123456789 ", contentFromart);
sheet.addCell(labelCFC2);
NumberFormats.TEXT是一个强制显示文本的格式,上面的代码将显示的数字为01234567890123456789 ,而非1234567890123456789。
最近不忙, 改进了一下, 增加了子对象的访问支持, 且集合对象可以通过 XX[0],,,, 来访问集合下标的访问,支持数组和列表。
于是,上面的代码可以改进, 不用再采取 MAP 的方式再次封装了,直接把对象传递进去, 使用定义的Field名称进行取值。
ByteArrayOutputStream stream = new ByteArrayOutputStream(); String[] titleNames = new String[]{"套组编号", "批次", "组基准月", "单位", "姓名", "可排月", "技术标准", "单位", "姓名", "可排月", "技术标准", "报到日期", "日期", "内容", "日期", "内容", "日期", "内容", "日期", "时间", "场次", "教员", "单位", "日期", "时间", "场次", "教员", "单位", "日期", "时间", "场次", "检察员", "单位", "执照签注类型"}; String[] fields = new String[]{"suite_no", "batch_no", "bench_Month", "studentList[0].unitName", "studentList[0].pilotName", "studentList[0].month", "studentList[0].technicalStandard", "studentList[1].unitName", "studentList[1].pilotName", "studentList[1].month", "studentList[1].technicalStandard",//学员 "checkin_date", "theoryDesViewList[0].t_date", "theoryDesViewList[0].t_content", "theoryDesViewList[1].t_date", "theoryDesViewList[1].t_content", "theoryDesViewList[2].t_date", "theoryDesViewList[2].t_content",//理论课 "training_simDesViewList[0].s_date", "training_simDesViewList[0].s_time", "training_simDesViewList[0].s_no", "training_simDesViewList[0].teacherName", "training_simDesViewList[0].unitName", //场次 "training_simDesViewList[1].s_date", "training_simDesViewList[1].s_time", "training_simDesViewList[1].s_no", "training_simDesViewList[1].teacherName", "training_simDesViewList[1].unitName", "training_simDesViewList[2].s_date", "training_simDesViewList[2].s_time", "training_simDesViewList[2].s_no", "training_simDesViewList[2].teacherName", "training_simDesViewList[2].unitName", "sign_property"};
如果数据量不是很大, 可以使用
更加方便维护。
但是这种方式如果数据量比较大, 就会出现内存占用过大的问题。
- ExcelWriter.rar (1.9 KB)
- 下载次数: 1
- A320ExcelWriter.rar (2.5 KB)
- 下载次数: 0
发表评论
-
NGINX配置简单的MOCK接口
2024-10-15 17:25 0公司中需要对应用进行压测,需要不影响接口返回速度的情况下,返 ... -
RabbitMQ消息关闭自动启动
2024-09-23 11:34 0应用配置的RabbitMQ一启动就注册监听器,这样 ... -
应用内存长期80%不下降
2024-06-21 18:13 0观察到应用JVM长期85%以上,堆内存小幅度波动,没有变化, ... -
内存80告警
2024-05-24 11:08 0网关内存到了85%, 查看近几天内存一直小幅波动,没有下降 ... -
Eclipse设置护眼色
2022-06-17 09:04 0编辑区背景色 1.背景颜色 Window->Pre ... -
java证书安装和更新/删除
2022-01-19 15:02 1085拿到证书,如 ****2019.cer。在WIN下面,双击 ... -
CLASS文件目录不执行更新,改了代码不生效
2021-12-02 16:56 0class目录下不编译, 更新了代码运行还是老的内容执行. ... -
Struts2导出多Excel压缩包
2021-09-28 16:34 0Struts2配置 <result name= ... -
8080端口不能访问
2021-07-21 23:11 0电脑装好之后,本机能访问,外机通过IP不能访问,关闭防火墙可 ... -
JVM设置中文编码
2021-07-05 11:46 0用CXF2.0做了一个接口转发服务,调用后发现中文出现乱码, ... -
自动发布没有通知更新缓存
2021-01-15 10:17 0问题 在成功测试完成平台的一个版本, 测试计划出测试报告 ... -
Eclipse 查看本地历史记录
2020-09-03 16:39 0Eclipse 在更新后,发现本地修改的代码不见了,可以使 ... -
SPRINGBOOT定时器中断不跑了测试
2020-08-05 21:43 0一次发布之后, 定时器不跑了, 追查了TOMCAT 日志, ... -
LOG4J多项目同TOMCAT后面项目不生成日志文件
2020-04-28 10:35 0在项目的TOMCAT里新增加一个监控的项目, 发现监控项目 ... -
DUBBO配置多环境
2019-11-07 16:49 0需要在Springboot2项目中配置DUBBO, Dub ... -
SOAPUI中文乱码
2019-10-23 11:05 0用SOAPUI调用报错UTF-8,参数中有中文。看到返回错误 ... -
JAVA中SET集合判断是否包含的坑
2019-10-22 14:18 0SET集合中存放航班信息对象FlightBoardQuery ... -
定时器任务缓慢
2019-10-09 13:51 0值机系统在国庆前定时器不再执行了。查日志Spring定时任 ... -
NGINX配置
2019-05-28 16:17 0在测试环境LINUX安装后,调试了很久跳转TOMCAT不通 ... -
使用Eclipse调试Spring boot项目时总是直接进入SilentExitExceptionHandler
2019-03-05 10:21 0使用Eclipse调试Spring boot项目时总是直接 ...
相关推荐
jxl导出excel 完整例子工程jxl导出excel 完整例子工程jxl导出excel 完整例子工程 jxl导出excel 完整例子工程jxl导出excel 完整例子工程jxl导出excel 完整例子工程
本教程将详细介绍如何使用`jxl`库在导出Excel时添加水印,以及涉及的核心类`WritableWorkbook`、`WritableSheet`和`WritableCellFormat`。 `jxl`库提供了一套完整的API来操作Excel文件,包括创建新的工作簿、添加...
在描述中提到的“jxl导出excel工具类”,通常会包含以下功能: 1. **初始化工作簿**:创建一个新的`Workbook`对象,这是Excel文件的基本单位,可以包含多个工作表。 2. **创建工作表**:在`Workbook`中添加新的`...
标题中的“jxl导出excel”指的是使用JExcelApi(简称jxl)库来生成和导出Microsoft Excel格式的文件。JExcelApi是一个开源Java库,允许开发者在Java应用程序中读取、写入和修改Excel文件。这个工具类在处理大量数据...
本篇文章将深入探讨如何利用`jxl`库来创建和导出Excel表格。 首先,我们需要在项目中引入`jxl`库。如果你的项目是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml <groupId>...
《jxl导出Excel的深度解析与应用》 在信息化高度发展的今天,Excel作为数据处理和分析的重要工具,被广泛应用于各个领域。Java作为一种强大的编程语言,如何与Excel进行交互,成为了许多开发者关注的焦点。jxl库...
jxl导出Excel基础,非常有用的一个东西,漫漫看
要实现"jxl从数据库中直接导出excel文档",我们遵循以下步骤: 1. **设置环境**:首先,确保你的项目中已经包含了JXL库的jar文件。你可以通过Maven或Gradle等构建工具将其作为依赖添加到项目中。 2. **数据库连接*...
首先,我们来理解"JXL导出Excel数据表"这一主题。JXL(Java Excel API)是一个开源项目,它允许Java程序创建、修改和读取Excel文件。通过这个库,我们可以方便地在程序中动态生成Excel工作表,包括设置单元格格式、...
在本示例中,我们将探讨如何使用JXL导出Excel以及JXL的API文档。 1. **JXL的基本用法** - **创建工作簿(Workbook)**: 使用`Workbook.createWorkbook()`方法创建一个新的Excel工作簿对象。 - **创建工作表...
标题中的“jxl导出excel文件简单示例”是指使用jxl库来创建和导出Excel文件的一个基本操作。jxl是一个Java库,它允许开发者读取、写入和修改Excel文件,尤其在处理批量数据时非常方便。在这个示例中,我们将探讨如何...
"jxl导出excel.zip"是一个包含工具类的压缩包,用于帮助开发者便捷地将数据导出为Excel格式,主要利用了JXL库。JXL是Java Excel API的一个简称,它是一个开源的Java库,支持读取、写入以及修改Microsoft Excel文件。...
以下是一个基本的代码示例,展示了如何利用JXL导出Excel的步骤: 1. 创建工作簿对象: ```java WorkbookSettings ws = new WorkbookSettings(); // 如果需要设置编码(例如中文字符),可以这样: ws.set...
在"struts2+jxl导出excel"的场景中,我们将讨论如何利用Struts2框架与JXL库配合,实现从web应用中导出数据到Excel的工作。 首先,我们需要理解Struts2的动作(Action)和结果(Result)。动作是处理用户请求的核心...
标题提到的"jxl导出excel文件的例子",意味着我们将探讨如何使用JXL库创建Excel文件。 在Java中,导出Excel文件通常涉及以下步骤: 1. 引入JXL库:首先,你需要在项目中添加JXL的依赖。如果你使用的是Maven,可以...
本文将深入探讨如何使用JXL库在Java中导出Excel文件,基于提供的“jxl导出excel实践”主题。 JXL库(Java Excel API)是专门用于读写Microsoft Excel文件的开源库。它支持多种操作,如创建新的工作簿,读取现有工作...
自己做的jxl导出excel。
根据提供的文件信息,我们可以总结并深入探讨以下几个与...以上是关于如何使用Java JXL库导出Excel文件的详细介绍,涵盖了从环境准备到具体实现步骤的全过程。希望这些知识点能够帮助您更好地理解和应用Java JXL库。
标题“JXL导出Excel”指的是使用JExcelApi库来创建和操作Microsoft Excel文件的Java编程技术。JExcelApi是一个开源的Java库,允许开发者在Java应用程序中读写Excel文件,而无需安装Microsoft Office。这个库特别适用...