java后台读取excel模板数据
/**
* 读取EXCEL模板数据
*
* @param excelFilePath excel文件路径
* @param dataRowNum 开始读取数据的行数
* @param keyRowNum 数据字段所在行数
* @return
* @throws IOException
*/
public static List<JSONObject> readExcelData(String excelFilePath, int dataRowNum, int keyRowNum)
throws IOException {
if (excelFilePath.endsWith(".xls"))
version = version2003;
else if (excelFilePath.endsWith(".xlsx"))
version = version2007;
InputStream stream = null;
if (version == version2003) {
stream = new FileInputStream(excelFilePath);
wb = (Workbook) new HSSFWorkbook(stream);
stream.close();
} else if (version == version2007) {
wb = (Workbook) new XSSFWorkbook(excelFilePath);
}
sheet = wb.getSheetAt(0);
// 行数(从0开始,相当于最后一行的索引),列数
int count_row = sheet.getLastRowNum();
int count_cell = sheet.getRow(keyRowNum).getPhysicalNumberOfCells();
List<JSONObject> list = FastList.newInstance();
JSONObject count = new JSONObject();
for (int i = 0; i < count_row; i++) {
JSONObject map = new JSONObject();
for (int j = 0; j < count_cell; j++) {
row = sheet.getRow(i + dataRowNum);
if (isRowEmpty(row)) {
continue;
}
if (null != row) {
cell = ((org.apache.poi.ss.usermodel.Row) row).getCell(j);
String k = "";
if (null != cell) {
int type = cell.getCellType(); // 得到单元格数据类型
switch (type) { // 判断数据类型
case Cell.CELL_TYPE_BLANK:
k = "";
break;
case Cell.CELL_TYPE_BOOLEAN:
k = cell.getBooleanCellValue() + "";
break;
case Cell.CELL_TYPE_ERROR:
k = cell.getErrorCellValue() + "";
break;
case Cell.CELL_TYPE_FORMULA:
k = cell.getCellFormula();
break;
case Cell.CELL_TYPE_NUMERIC:
if (DateUtil.isCellDateFormatted(cell)) {
k = new DataFormatter().formatRawCellContents(
cell.getNumericCellValue(), 0, "yyyy-mm-dd hh:mm:ss");// 格式化日期yyyy-mm-dd hh:mm:ss
} else {
k = keepTwoDecimal(cell.getNumericCellValue());
// //k = cell.getNumericCellValue() + "";
// // 将科学计数法类型转换为字符串
// /*Double double1 = new Double(k);
// DecimalFormat decimalFormat = new DecimalFormat("###0");// 格式化设置
// k = decimalFormat.format(double1);*/
// //modify by zf 20191125 使用format方法解决手机号格式问题,获取原始数据
// DecimalFormat df = new DecimalFormat("0");
// k = df.format(cell.getNumericCellValue());
}
break;
case Cell.CELL_TYPE_STRING:
k = cell.getStringCellValue();
break;
default:
break;
}
map.put(((org.apache.poi.ss.usermodel.Row) sheet.getRow(keyRowNum)).getCell(j).getStringCellValue(), k);
}
}
}
if (map != null && map.size() != 0) {
list.add(map);
}
}
cell = null;
row = null;
sheet = null;
wb = null; return list;
}
java后台读取excel模板数据的更多相关文章
- postman上传excel,java后台读取excel生成到指定位置进行备份,并且把excel中的数据添加到数据库
最近要做个前端网页上传excel,数据直接添加到数据库的功能..在此写个读取excel的demo. 首先新建springboot的web项目 导包,读取excel可以用poi也可以用jxl,这里本文用 ...
- Java后台读取excel表格返回至Web前端
如果是做连接数据库的话,系统难度就降低了不少:这次本人也算是体会到数据库的方便了吧(不过以后云储存好像会更受欢迎些):比如说查询列出所有数据吧:数据库每个表每一列都有列名,正常的做法是遍历数据库表,d ...
- java实现赋值excel模板,并在新文件中写入数据,并且下载
/** * 生成excel并下载 */ public void exportExcel(){ File newFile = createNewFile(); //File newFile = new ...
- POI3.10读取Excel模板填充数据后生成新的Excel文件
private final DecimalFormat df = new DecimalFormat("#0.00"); public void test(){ String fi ...
- poi读取excel模板,填充内容并导出,支持导出2007支持公式自动计算
/** * 版权所有(C) 2016 * @author www.xiongge.club * @date 2016-12-7 上午10:03:29 */ package xlsx; /** * @C ...
- VC6.0读取Excel文件数据
啰嗦一下:本人所在公司从事碟式斯特林太阳能发电设备的研发与销售.单台设备图如下: 工作原理如下:整个设备大致可分为五个部分, 1.服务器,负责气象.发电等数据存取,电.网连接等处理: 2.气象站,通过 ...
- 项目一:第四天 1、快递员的条件分页查询-noSession,条件查询 2、快递员删除(逻辑删除) 3、基于Apache POI实现批量导入区域数据 a)Jquery OCUpload上传文件插件使用 b)Apache POI读取excel文件数据
1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) ...
- 上传读取Excel文件数据
/// <summary> /// 上传读取Excel文件数据 /// 来自http://www.cnblogs.com/cielwater /// </summary> // ...
- fastJson java后台转换json格式数据
什么事JSON? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Progra ...
随机推荐
- Ubuntu 16.04非编译安装Zabbix 3.2----服务端和客户端win的配置
控服务器 - 什么是Zabbix Zabbix是企业级开源分布式监控服务器解决方案. 该软件监控网络的不同参数和服务器的完整性,还允许为任何事件配置基于电子邮件的警报. Zabbix根据存储在数据库( ...
- Ubuntu系统配置Zabbix前端及中文乱码解决方案
Ubuntu系统配置Zabbix前端及中文乱码解决方案 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.安装zabbix 博主推荐阅读: https://www.cnblogs ...
- 新闻网大数据实时分析可视化系统项目——16、Spark2.X集群运行模式
1.几种运行模式介绍 Spark几种运行模式: 1)Local 2)Standalone 3)Yarn 4)Mesos 下载IDEA并安装,可以百度一下免费文档. 2.spark Standalone ...
- webpack 4 x使用详细
1.首先安装node.js 2.打开控制台cmd,输入npm install webpack webpack-cli webpack-dev-server -g 3.在本地磁盘上建一个文件夹,然后通过 ...
- 014、MySQL取本月天数(这个月有多少天)
#取本月天数 SELECT DATEDIFF( date_add( curdate( ) , INTERVAL MONTH ), DATE_ADD( curdate( ), INTERVAL DAY ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-signal
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-pause
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- Java Break 与 Continue
章节 Java 基础 Java 简介 Java 环境搭建 Java 基本语法 Java 注释 Java 变量 Java 数据类型 Java 字符串 Java 类型转换 Java 运算符 Java 字符 ...
- 整合 nginx php-fpm
start 继上一篇 整合两个images 完成 LNMP github https://github.com/shiphp/nginx-env 稍加修改 vim dockerfile ...
- vi/vim常用操作
什么是vim? Vim是从 vi 发展出来的一个文本编辑器.代码补全.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器. vim的 ...