POI 读取Excel文件 并解析JSON数据
package skuPrice; import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream; import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; public class JDSku { public static void main(String[] args) {
String[] strs = args;
String filename = strs[0];
String sheetname = strs[1];
getSkuPrice(filename,sheetname);
}
/**
* @author wk
* @date 2019/09/18
* @param fileName
* @param bookName
*/
public static void getSkuPrice(String fileName,String bookName){
System.out.println("进入解析价格方法..........");
InputStream input = null;
FileOutputStream output = null;
long start = System.currentTimeMillis();
try {
System.out.println("**********正在读取“"+fileName+".xlsx”文件**************");
input = new FileInputStream(new File("D:\\"+fileName+".xlsx"));
String skujson = "";
String skus = "";
XSSFWorkbook work = new XSSFWorkbook(input);
XSSFSheet sheet = work.getSheet(bookName);
int linenum = sheet.getLastRowNum();//获取excel
System.out.println(sheet.getLastRowNum());
int flag = 0;
try{
for (int i = 1; i <= linenum; i++) {//读取每一行数据
flag = i;
XSSFRow row = sheet.getRow(i);
short lastcellnum= row.getLastCellNum();
row.getCell(7).setCellType(Cell.CELL_TYPE_STRING);
row.getCell(9).setCellType(Cell.CELL_TYPE_STRING);
skujson= row.getCell(7).getStringCellValue(); //获取包含sku的价格
skus = row.getCell(9).getStringCellValue(); //获取sku
System.out.println("EXPAND_INFO:"+skujson.toString());
JSONObject skuob = JSONArray.parseObject(skujson);
String pricestr = skuob.getString("price");
JSONObject pricejson = JSONArray.parseObject(pricestr);
String price= pricejson.getString(skus);
System.out.println(skus+"============"+price);
try{
row.createCell(lastcellnum+1, Cell.CELL_TYPE_STRING);
// row.getCell(15).setCellType(Cell.CELL_TYPE_STRING);
row.getCell(lastcellnum+1).setCellValue(price);
}catch (Exception e) {
e.printStackTrace();
continue;
}
}
}catch(Exception e){
output = new FileOutputStream(new File("D:\\"+fileName+"解析后文件.xlsx"));
work.write(output);//写入excel
System.out.println("解析到第"+(flag+1)+"行,部分解析成功,请重试.........");
e.printStackTrace();
}
output = new FileOutputStream(new File("D:\\"+fileName+"解析后文件.xlsx"));
work.write(output);//写入excel
long end = System.currentTimeMillis();
long use = (end-start)/60000;
System.out.println("*********SUCCESS*********");
System.err.println("共用时:"+use+"分钟");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
POI 读取Excel文件 并解析JSON数据的更多相关文章
- 项目一:第四天 1、快递员的条件分页查询-noSession,条件查询 2、快递员删除(逻辑删除) 3、基于Apache POI实现批量导入区域数据 a)Jquery OCUpload上传文件插件使用 b)Apache POI读取excel文件数据
1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) ...
- JAVA使用POI读取EXCEL文件的简单model
一.JAVA使用POI读取EXCEL文件的简单model 1.所需要的jar commons-codec-1.10.jarcommons-logging-1.2.jarjunit-4.12.jarlo ...
- 使用POI 读取 Excel 文件,读取手机号码 变成 1.3471022771E10
使用POI 读取 Excel 文件,读取手机号码 变成 1.3471022771E10 [问题点数:40分,结帖人xieyongqiu] 不显示删除回复 ...
- POI 读取Excel文档中的数据——兼容Excel2003和Excel2007
Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. HSSF - 提供读写Microsoft Exce ...
- Java实现POI读取Excel文件,兼容后缀名xls和xlsx
1.引入所需的jar包: maven管理项目的话直接添加以下坐标即可: <!-- https://mvnrepository.com/artifact/org.apache.poi/poi -- ...
- 使用POI读取excel文件内容
1.前言 项目中要求读取excel文件内容,并将其转化为xml格式.常见读取excel文档一般使用POI和JExcelAPI这两个工具.这里我们介绍使用POI实现读取excel文档. 2.代码实例: ...
- spring boot 使用 POI 读取Excel文件
内容简介 本文主要介绍使用POI进行Excel文件的相关操作,涉及读取文件,获取sheet表格,对单元格内容进行读写操作,以及合并单元格的操作. Excel文件目录 Excel模板文件存了resour ...
- 使用jxl,poi读取excel文件
作用:在java后台添加一个方法,读取导入的excel内容,根据需要返回相应的sql语句,以完成对临时表的插入操作. 使用jxl读取excel文件 package com.sixthf.bi.sapp ...
- jspsmart(保存文件)+poi(读取excel文件)操作excel文件
写在前面: 项目环境:jdk1.4+weblogic 需求:能上传excel2003+2007 由于项目不仅需要上传excel2003,还要上传excel2007,故我们抛弃了jxl(只能上传exce ...
随机推荐
- 折腾deepin修改终端语言
原创作品,作者是博客园sogeisetsu,转载请注明来源sogeisetsu.cnblogs.com 唉-都怪当初没学扎实,改个终端语言花费了半天. 首先,介绍一下我的情况 有两个用户,一个是roo ...
- Show which git tag you are on?
git查看当前代码是在那个tag? reference: https://stackoverflow.com/questions/3404936/show-which-git-tag-you-are- ...
- 项目Beta冲刺(团队) --3/7
课程名称:软件工程1916|W(福州大学) 作业要求:项目Beta冲刺 团队名称:葫芦娃队 作业目标:进行新一轮的项目冲刺,尽力完成并完善项目 团队博客 队员学号 队员昵称 博客地址 04160242 ...
- 接口自动化测试框架【windows版】:jmeter + ant + jenkins
为了提高回归效率及保证版本质量,很多公司都在做自动化测试,特别是接口自动化.接口自动化测试框架很多,有写代码的,也有不写代码的,我觉得没有谁比谁好,谁比谁高级之说,只要适用就好. 今天给大家分享一个不 ...
- Sitemap Error : XML declaration allowed only at the start of the document解决方法
今天ytkah的客户反馈说他的xml网站地图有问题,提示Sitemap Error : XML declaration allowed only at the start of the documen ...
- angularJS开发环境搭建和启动
本文目录:1.angularJS框架简介 2.angularJS环境搭建 3.启动一个项目 1.angularJS框架简介 AngularJS是一个开发动态Web应用的框架.它让你可以使用HTML作为 ...
- 牛客练习赛55 E 树
题目链接: 题意:给出n个点,n-1条边求任意两个点的距离平方的和 解法: f[i]表示这个点的高度 sz[i]表示这个子树的大小 szz[i]表示这个这个子树大小的平方 sum[i]表示这个子树所有 ...
- react知识点总结(持续更新。。。)
一.webpack 1. 什么是以及为什么要使用webpack 现在的网页功能越来越丰富,所需要的JavaScript和模块也会很多,为开发更加简洁,出现了以下方法,如模块化,scss,typescr ...
- Kmeans文档聚类算法实现之python
实现文档聚类的总体思想: 将每个文档的关键词提取,形成一个关键词集合N: 将每个文档向量化,可以参看计算余弦相似度那一章: 给定K个聚类中心,使用Kmeans算法处理向量: 分析每个聚类中心的相关文档 ...
- nginx 访问控制之 user_agent
user_agent大家并不陌生,可以简单理解成浏览器标识,包括一些蜘蛛爬虫都可以通过user_agent来辨识. 通过访问日志,可以发现一些搜索引擎的蜘蛛对网站访问特别频繁,它们并不友好. 为了减少 ...