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. 项目一:第四天 1、快递员的条件分页查询-noSession,条件查询 2、快递员删除(逻辑删除) 3、基于Apache POI实现批量导入区域数据 a)Jquery OCUpload上传文件插件使用 b)Apache POI读取excel文件数据

    1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) ...

  2. JAVA使用POI读取EXCEL文件的简单model

    一.JAVA使用POI读取EXCEL文件的简单model 1.所需要的jar commons-codec-1.10.jarcommons-logging-1.2.jarjunit-4.12.jarlo ...

  3. 使用POI 读取 Excel 文件,读取手机号码 变成 1.3471022771E10

    使用POI 读取 Excel 文件,读取手机号码 变成 1.3471022771E10 [问题点数:40分,结帖人xieyongqiu]             不显示删除回复             ...

  4. POI 读取Excel文档中的数据——兼容Excel2003和Excel2007

    Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. HSSF - 提供读写Microsoft Exce ...

  5. Java实现POI读取Excel文件,兼容后缀名xls和xlsx

    1.引入所需的jar包: maven管理项目的话直接添加以下坐标即可: <!-- https://mvnrepository.com/artifact/org.apache.poi/poi -- ...

  6. 使用POI读取excel文件内容

    1.前言 项目中要求读取excel文件内容,并将其转化为xml格式.常见读取excel文档一般使用POI和JExcelAPI这两个工具.这里我们介绍使用POI实现读取excel文档. 2.代码实例: ...

  7. spring boot 使用 POI 读取Excel文件

    内容简介 本文主要介绍使用POI进行Excel文件的相关操作,涉及读取文件,获取sheet表格,对单元格内容进行读写操作,以及合并单元格的操作. Excel文件目录 Excel模板文件存了resour ...

  8. 使用jxl,poi读取excel文件

    作用:在java后台添加一个方法,读取导入的excel内容,根据需要返回相应的sql语句,以完成对临时表的插入操作. 使用jxl读取excel文件 package com.sixthf.bi.sapp ...

  9. jspsmart(保存文件)+poi(读取excel文件)操作excel文件

    写在前面: 项目环境:jdk1.4+weblogic 需求:能上传excel2003+2007 由于项目不仅需要上传excel2003,还要上传excel2007,故我们抛弃了jxl(只能上传exce ...

随机推荐

  1. eclipse集成lombok插件

    原文:https://my.oschina.net/u/3771868/blog/1837243 lombok官网:https://projectlombok.org/jar包下载路径:https:/ ...

  2. 团队第四次作业——Alpha1版本发布

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/2019autumnsystemanalysisanddesign/ 这个作业要求在哪里 https:// ...

  3. Linux创建目录和文件的默认权限设置

    这两天,项目中使用jenkins自动构建系统时遇到了在Linux中创建目录和文件的权限问题,临时的解决办法是在脚本中增加了chmod赋权限命令; 偶然想到Linux应该是可以设置默认权限的,故学习了一 ...

  4. 滚动加载|页面滑到底部加载数据|jquery.endless-scroll插件|使用demo

    <html> <head> <link rel="dns-prefetch" href="http://i.tq121.com.cn&quo ...

  5. Java中对象的比较(学习笔记)

    1)详细说明对象的比较方式有哪些? ①对象引用的比较("= ="运算符) "= ="是将对象的引用进行比较,实质是比较两个引用变量是否引用同一个对象.注意的点: ...

  6. materialize 读取单选按钮

    $('input[name='xxx']:checked')

  7. python - 将天数转换成日期

    # 如果是 0 则为今天 def getdate(day): today = datetime.datetime.now() deviation = datetime.timedelta(days=- ...

  8. python3.7 win10配置opencv和扩展库

  9. firewall-cmd命令的富语言(richlanguage)示例

    一.为协议“ah”启用新的IPv4和IPv6连接 firewall-cmd --permanent --add-rich-rule 'rule protocol value="ah" ...

  10. ent 基本使用八 索引

    我们可以在ent 的schema 中定义index 可以方便的控制数据约束,使用索引可以加速我们的访问以及数据的唯一性处理 配置字段索引 多字段索引 package schema ​ import ( ...