一:示例代码

//InputStream fis = new FileInputStream(tomcaturl+this.awardTask.getFileRoute());
//可以通过上述方式获得InputStream
private List<XueBaQuestionEntity> GetAllImportQuestion(InputStream inputstream) {
// POIFSFileSystem fs;
// HSSFWorkbook wb;
// HSSFSheet sheet;
// HSSFRow row;
//     HSSF只支持excel2003
List<XueBaQuestionEntity> questionList = new ArrayList<XueBaQuestionEntity>();
List<XueBaOptionEntity> optionList;
XueBaQuestionEntity question = null; try{
// fs = new POIFSFileSystem(inputstream);
// wb = new HSSFWorkbook(fs);
Workbook wb = WorkbookFactory.create(inputstream);
/** 遍历sheet **/
for (int i = 0; i < wb.getNumberOfSheets(); i++) {
/** 获得当前sheet **/
Sheet sheet = wb.getSheetAt(i);
int num = 1;
for (int j = 1; j < sheet.getPhysicalNumberOfRows() ; j++) {
num++;
try{
question = new XueBaQuestionEntity();
optionList = new ArrayList<XueBaOptionEntity>();
/** 获得当前行情 **/
Row row = sheet.getRow(j);
if(row != null){
String qContent = getCellFormatValue(row.getCell(0)).trim();
String aOption = getCellFormatValue(row.getCell(1)).trim();
//题目或A选项为空就不保存
if(StringUtil.isEmpty(qContent) || StringUtil.isEmpty(aOption)){
logger.info("题库第" + num + "行题库或A选项为空,未保存");
continue;
}
String bOption = getCellFormatValue(row.getCell(2)).trim();
String cOption = getCellFormatValue(row.getCell(3)).trim();
String dOption = getCellFormatValue(row.getCell(4)).trim();
String eOption = getCellFormatValue(row.getCell(5)).trim();
String answer = getCellFormatValue(row.getCell(6)).trim(); System.out.println("qcontent:"+qContent);
/* 赋值问题实体 */
question.setContent(qContent);
if(answer.indexOf(",")>0){
question.setType(1);
}else{
question.setType(0);
}
question.setAnswer(answer);
//赋值选项实体
if (StringUtil.isNotEmpty(aOption)) {
XueBaOptionEntity aOptionEntity = new XueBaOptionEntity();
aOptionEntity = DealOption(aOptionEntity,aOption);
optionList.add(aOptionEntity);
}
if (StringUtil.isNotEmpty(bOption)) {
XueBaOptionEntity bOptionEntity = new XueBaOptionEntity();
bOptionEntity = DealOption(bOptionEntity,bOption);
optionList.add(bOptionEntity);
}
if (StringUtil.isNotEmpty(cOption)) {
XueBaOptionEntity cOptionEntity = new XueBaOptionEntity();
cOptionEntity = DealOption(cOptionEntity,cOption);
optionList.add(cOptionEntity);
}
if (StringUtil.isNotEmpty(dOption)) {
XueBaOptionEntity dOptionEntity = new XueBaOptionEntity();
dOptionEntity = DealOption(dOptionEntity,dOption);
optionList.add(dOptionEntity);
}
if (StringUtil.isNotEmpty(eOption)) {
XueBaOptionEntity eOptionEntity = new XueBaOptionEntity();
eOptionEntity = DealOption(eOptionEntity,eOption);
optionList.add(eOptionEntity);
} question.setXueBaOptionList(optionList);
questionList.add(question);
}
}catch (Exception e) {
e.printStackTrace();
logger.info("题库第" + num + "行解析异常");
}
}
}
}catch (Exception e) {
e.printStackTrace();
}
return questionList;
} private XueBaOptionEntity DealOption(XueBaOptionEntity optionEntity,
String option) {
int start = option.indexOf("、");
// System.out.println("option:"+option+" start:"+start);
String optionTitle = option.substring(0, start);
String optionContent = option.substring(start+1);
optionEntity.setTitle(optionTitle);
optionEntity.setContent(optionContent);
return optionEntity;
} private String getCellFormatValue(Cell cell) {
String cellvalue = "";
if (cell != null) {
// 判断当前Cell的Type
switch (cell.getCellType()) {
// 如果当前Cell的Type为NUMERIC
case Cell.CELL_TYPE_NUMERIC:{
BigDecimal big = new BigDecimal(cell.getNumericCellValue());
cellvalue = big.toString();
break;
}
case Cell.CELL_TYPE_FORMULA: {
BigDecimal bigula = new BigDecimal(cell
.getCachedFormulaResultType());
cellvalue = bigula.toString();
break;
}
// 如果当前Cell的Type为STRING
case Cell.CELL_TYPE_STRING:
// 取得当前的Cell字符串
cellvalue = cell.getRichStringCellValue().getString();
break;
// 默认的Cell值
default:
cellvalue = " ";
}
} else {
cellvalue = "";
}
return cellvalue;
}

excel 导入功能的更多相关文章

  1. 解析大型.NET ERP系统 设计通用Microsoft Excel导入功能

    做企业管理软件很难避免与Microsoft Excel打交道,常常是软件做好了,客户要求说再做一个Excel导入功能.导入Excel数据的功能的难度不大,从Excel列数据栏位的取值,验证值,再导入到 ...

  2. java利用jxl实现Excel导入功能

    本次项目实践基于Spring+SpringMvc+MyBatis框架,简单实现了Excel模板导出.和Excel批量导入的功能.实现过程如下:. 1.maven导入所需jar包 <depende ...

  3. 后端Springboot前端VUE实现Excel导入功能

    功能描述:做的是物联网的项目,Excel导入实现的功能是将Excel中的数据批量的导入AEP系统,再导入我们系统中.目前已经完成该功能,前端还会添加进度条优化.对于导入导出功能,推荐这个Git:htt ...

  4. Excel导入功能

    一:前端 <t:dgToolBar title="Excel题库导入" icon="icon-search" onclick="question ...

  5. Java中Excel导入功能实现、excel导入公共方法_POI -

    这是一个思路希望能帮助到大家:如果大家有更好的解决方法希望分享出来 公司导入是这样做的 每个到导入的地方 @Override public List<DataImportMessage> ...

  6. Excel导入功能(Ajaxfileupload)

    前言: 前端采用Easyui+Ajaxfileupload实现 后端采用springmvc框架,其中把解析xml封装成了一个jar包,直接调用即可 准备: 前端需要导入(easyui导入js省略,自行 ...

  7. php Excel 导入功能

    下载excel类地址 https://pan.baidu.com/s/19MqAHUn4RyZ5HEAChyC0jg  密码:mn58 本人用的thinkcmf框架 把类文件放在框架的类文件里面,下面 ...

  8. Java Controller下兼容xls和xlsx且可识别合并单元格的excel导入功能

    1.工具类,读取单元格数据的时候,如果当前单元格是合并单元格,会自动读取合并单元格的值 package com.shjh.core.util; import java.io.IOException; ...

  9. React + Antd开发模式下的Excel导入功能

    具体js如下,配合的是antd里面的upload组件,使用的是xlsx插件 npm :  npm install xlsx 插件链接: https://github.com/SheetJS/sheet ...

随机推荐

  1. Android中Activity启动模式详解

    在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作.在Android中Activity的启动模式决定了Activity的启动运行方式. An ...

  2. sysbench 安装 原创

    1.下载sysbench version 0.5 https://github.com/akopytov/sysbench 2. [root@server1 sysbench-0.5]# pwd/ro ...

  3. yum服务器设置

    转自:http://blog.chinaunix.net/uid-22141042-id-1789605.html 不得不说,RedHat的确很邪恶,如果我们直接用他自带的系统碟做YUM源的话,总是会 ...

  4. mysql 批量插入数据过多的解决方法

    使用场景: 测试时需要插入100w的数据,跑sql脚本插入非常慢. 存储过程如下: //DELIMITER DROP PROCEDURE if EXISTS createAmountCount; cr ...

  5. oracle 设置标识列自增

    设置reg_user表 userid为自增列    1.设置键   2.创建序列   3.创建触发器

  6. 根据url获取网页内容

    PrintWriter out = null; out = response.getWriter(); try{ URL getUrl = new URL("http://www.kuaid ...

  7. js判断图片上传时的文件大小,和宽高尺寸

    今天在做图片上传的小功能,使用了一个kissy上传组件.很好奇它是如何在图片上传前,检测到图片的大小和尺寸的?我们来写个小实例实现一下吧 如何读取图片的size 首先,原生input file控件有个 ...

  8. PPI_network&calc_ppi

    # -*- coding: utf-8 -*- # __author__ = 'JieYao' from biocluster.agent import Agent from biocluster.t ...

  9. LeetCode 75

    Sort Colors Given an array with n objects colored red, white or blue, sort them so that objects of t ...

  10. CSS3 box-flex属性和box-orient属性

    比较有意思的是虽然目前没有浏览器支持box-flex,box-orient属性,但CSS3问世以来,这两个属性却一直很火.2014年阿里校招第5题要求使用CSS3中的功能实现三个矩形的布局,总的宽度为 ...