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. Linux查看打日志文件

    1.如果文件比较小的话,使用vim直接查看,如果文件比较大的话,使用vim会直接卡主 2.如果想要查看正在滚动的日志文件.这个命令可以查看大文件. tail -f file Ctrl+c 终止tail ...

  2. Access denied for user '密码'@'192.18.0.0' (using password: YES)

    Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.6:generate (default- ...

  3. WebLogic任意文件上传漏洞(CVE-2019-2618)

    WebLogic任意文件上传漏洞(CVE-2019-2618) 0x01 漏洞描述 漏洞介绍 CVE-2019-2618漏洞主要是利用了WebLogic组件中的DeploymentService接口, ...

  4. 推荐系统(recommender systems):预测电影评分--问题描述

    推荐系统很重要的原因:1>它是机器学习的一个重要应用2>对于机器学习来说,特征是非常重要的,对于一些问题,存在一些算法能自动帮我选择一些优良的features,推荐系统就可以帮助我们做这样 ...

  5. PL/SQL Developer 快捷键

    前面我有分享了一个PLSQL美化规则,其实通过统一的美化SQL,把这里SQL写在Java代码里可以比较容易阅读代码,且保持良好得编码风格. 在工作中我们也经常使用PLSQL来写一SQL,有些常用的SQ ...

  6. 19、Python标准库: 日期和时间

    一.time时间模块 import time 1 .时间戳   时间戳(timestamp):时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量. time_stamp = tim ...

  7. 【Redis】远程访问不了

    Windows安装后,启动的服务配置文件是redis.windows-service.conf "D:\Program Files\Redis\redis-server.exe" ...

  8. MapReduce的初识

    MapReduce是什么 HDFS:分布式存储系统 MapReduce:分布式计算系统 YARN:hadoop 的资源调度系统 Common:以上三大组件的底层支撑组件,主要提供基础工具包和 RPC ...

  9. go mod 使用

    go modules 是 golang 1.11 新加的特性.现在1.12 已经发布了,是时候用起来了.Modules官方定义为: 模块是相关Go包的集合.modules是源代码交换和版本控制的单元. ...

  10. 创建Maven之后,Java包下无法直接创建servlet的原因:

    ---恢复内容开始--- 没有导入servlet-api的依赖,导入完依赖就可以直接创建了   依赖如下:   <dependency> <groupId>javax.serv ...