Commit b37012ca by 王仕雄

excel解析相关工具类与测试方法

1 parent f898ceb8
......@@ -238,6 +238,24 @@
<version>1.9.2</version>
</dependency>
<!--jxl jxl是一个开源的Java Excel API项目,通过Jxl,Java可以很方便的操作微软的Excel文档-->
<dependency>
<groupId>net.sourceforge.jexcelapi</groupId>
<artifactId>jxl</artifactId>
<version>2.6.12</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.16</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.16</version>
</dependency>
<!--war包部署需要-->
<!--<dependency>-->
<!--<groupId>org.springframework.boot</groupId>-->
......
package com.bootdo.common.utils;
public class AAA {
public static void main(String[] args) {
String ids ="[380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409]";
String answers ="[B不同意, ['C脱敏治疗','B提高免疫力','A 避免接触过敏原'], B不同意, ['卡托普利','赖诺普利片','苯磺酸氨氯地平片','珍菊降压片','氢氯噻嗪'], ['泮托拉唑','奥美拉唑','兰索拉唑','氢氧化铝片'], ['容易引发脑溢血','长期高血压导致肾衰竭','容易导致动脉粥样硬化','长期高血压导致冠心病'], ['晕车贴','晕车药','坐车前不吃东西','吸闻橘子皮预防晕车'], ['不得掰开使用','服用时不能咀嚼'], ['鼻塞','鼻痒','流涕','喷嚏','慢性荨麻疹','皮肤瘙痒','哮喘','面部红斑','过敏性结膜炎'], ['氯雷他定','扑尔敏片'], ['肥胖','吸烟','饮酒','缺乏运动','高血压病家族遗传史','老年人','怀孕的妇女','食盐摄入量大的人','饮食过于油腻的人'], ['抗酸剂','抑酸剂','粘膜保护剂'], ['厌食','营养不良','身体消瘦','肠梗阻及穿孔','智力发育障碍','荨麻疹','哮喘'], ['接触患有肠道寄生虫病的患者',]";
String []s = ids.split(",");
String []s2 = answers.split(",");
String a2 = "B不同意@|,['B提高免疫力']@|,B不同意@|,['苯磺酸氨氯地平片','珍菊降压片','氢氯噻嗪']@|,['兰索拉唑','奥美拉唑']@|,['容易导致动脉粥样硬化','长期高血压导致冠心病']@|,['坐车前不吃东西']@|,['其他','服用时不能咀嚼']@|,['鼻痒','慢性荨麻疹','喷嚏','过敏性结膜炎']@|,['康必得','氯雷他定','扑尔敏片']@|,['饮酒','缺乏运动','食盐摄入量大的人']@|,['促胃肠动力药','粘膜保护剂']@|,['身体消瘦','肠梗阻及穿孔']@|,['接触被污染的玩具','接触被污染的地板']@|,['定期服用驱虫药','瓜果蔬菜洗净吃']@|,['阿苯达唑片','其他']@|,['男性性功能障碍']@|,['海鲜','紫外线','动物皮毛']@|,['失眠','耳鸣','头晕']@|,['B降压药不能随便吃,一旦吃了就断不了','D降压药有副作用,尽量不使用降压药']@|,['B电视广告','D药店服务人员介绍','F听别人介绍']@|,['C不好,没什么效果,反而嗜睡等副作用很大 对我没";
String [] a22 = a2.split("[@][|],");
System.out.println(99);
}
}
package com.bootdo.common.utils;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
public class ExcelUtilTest {
public static void main(String[] args) throws Exception {
InputStream in = new FileInputStream("d://12348.xls");
Map<String, String> fieldd = new HashMap<String, String>();
fieldd.put("ids", "ids");
fieldd.put("titles", "titles");
fieldd.put("answers", "answers");
List<HzdyDO> resultList = new ArrayList<HzdyDO>();
resultList = ExeclUtil.ExecltoList(in, HzdyDO.class, fieldd);
List<Integer> idLength = new ArrayList<Integer>();
List<Integer> titleLength = new ArrayList<Integer>();
List<Integer> answerLength = new ArrayList<Integer>();
for(HzdyDO hzdyDO:resultList) {
idLength.add(hzdyDO.getIds().split("[@][|],").length);
titleLength.add(hzdyDO.getTitles().split("[@][|],").length);
answerLength.add(hzdyDO.getAnswers().split("[@][|],").length);
}
//id与title对比
for(int i=0;i<idLength.size();i++) {
if(idLength.get(i).intValue() != titleLength.get(i).intValue()) {
System.out.println("第"+i+1+"条数据的id与title长度不匹配");
break;
}
if(idLength.get(i).intValue() != answerLength.get(i).intValue()) {
System.out.println("第"+i+1+"条数据的id与answer长度不匹配");
break;
}
}
//对查询结果中的题目id,题目文本,用户答案进行拆分
List<Map<String, Object>> finalDataList = new ArrayList<Map<String,Object>>();
for(int i=0;i<10;i++) {
Map finalMap = new HashMap<String, Object>();
finalMap.put("enterpriseName", i+"a");//乙方企业
finalMap.put("projectName", i+"b");//项目名称
finalMap.put("taskDt", i+"c");//任务月度
finalMap.put("fullName", i+"d");//答题人姓名
finalMap.put("phone", i+"e");//答题人手机号
finalMap.put("createDt", i+"f");//答题时间
finalMap.put("audit_status", i+"g");//状态
String topicIds = String.valueOf(resultList.get(i).getIds());//用户答题的,题目id数组, 与问卷标准的id数组可能不匹配,但与用户答题的题目文本,题目答案数组是匹配的
topicIds = topicIds.substring(0, topicIds.length()-2);
String topicTitles = String.valueOf(resultList.get(i).getTitles());//用户答题的,题目文本数组
topicTitles = topicTitles.substring(0,topicTitles.length()-2);
String topicAnswers = String.valueOf(resultList.get(i).getAnswers());//用户答题的,题目答案数组
topicAnswers = topicAnswers.substring(0,topicAnswers.length()-2);
List<String> topicIdList = new ArrayList<String>();//当前问卷应该存在的题目id 问卷的标准id数组
String [] topicIdArr = topicIds.split("[@][|],");
String [] topicTitleArr = topicTitles.split("[@][|],");
String [] topicAnswerArr = topicAnswers.split("[@][|],");
for(int j=0;j<topicIdArr.length;j++) {
finalMap.put(topicIdArr[j], topicAnswerArr[j]);
}
finalDataList.add(finalMap);
}
//设置报表名字
String fileName="医学调研任务报表新";
//设置分页名称
String sheetName="医学调研任务记录新";
//设置报表1表头
String [] columns = {"乙方企业","项目名称","任务月度","项目参与人","手机号","填写时间","状态"};
//状态单独处理
String statusRemark = "audit_status|1:审核中|2:审核通过|3:审核不通过|其他";
//设置报表从map中获取的key,必须与表头长度对应
String [] columnKeys = {"enterpriseName","projectName","taskDt","fullName","phone","createDt",statusRemark};
//增加表头,增加key 表头为题目的title ,key为题目的id
List<String> columnArr = new ArrayList<String>(Arrays.asList(columns));
List<String> columnKeyArr = new ArrayList<String>(Arrays.asList(columnKeys));
String [] topicIdArr = resultList.get(0).getIds().split("[@][|],");
String [] topicTitleArr = resultList.get(0).getTitles().split("[@][|],");
for(int j=0;j<topicIdArr.length;j++) {
columnArr.add(String.valueOf(topicTitleArr[j]));
columnKeyArr.add(String.valueOf(topicIdArr[j]));
}
String[] columnsV2 = new String[columnArr.size()];
String[] columnKeysV2 = new String[columnKeyArr.size()];
columnArr.toArray(columnsV2);
columnKeyArr.toArray(columnKeysV2);
//第一个excel表格
JxlExcelUtils.exportOwoSheetExcleFinal(null, fileName, finalDataList,sheetName, columnsV2, columnKeysV2);
System.out.println(999);
}
}
package com.bootdo.common.utils;
public class HzdyDO {
String ids;
String titles;
String answers;
public String getIds() {
return ids;
}
public void setIds(String ids) {
this.ids = ids;
}
public String getTitles() {
return titles;
}
public void setTitles(String titles) {
this.titles = titles;
}
public String getAnswers() {
return answers;
}
public void setAnswers(String answers) {
this.answers = answers;
}
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!