java excel to json_java 读取excel内容转为JSONArray

需要引入的JAR

net.sourceforge.jexcelapi

jxl

2.6.8

com.alibaba

fastjson

1.2.7

测试类

packagecom.taobao.tair;importcom.alibaba.fastjson.JSONArray;importcom.alibaba.fastjson.JSONObject;importjxl.Cell;importjxl.Sheet;importjxl.Workbook;importjava.io.File;public classExcel {public static voidmain(String[] args) {

Sheet sheet;

Workbook book;

Cell cell1, cell2, cell3, cell4, cell5;

JSONArray array= newJSONArray();try{//为要读取的excel文件名

book = Workbook.getWorkbook(new File("D://b.xls"));//获得第一个工作表对象(ecxel中sheet的编号从0开始,0,1,2,3,....)

sheet = book.getSheet(0);for (int i = 1; i < sheet.getRows(); i++) {//获取每一行的单元格

cell1 = sheet.getCell(0, i);//(列,行)

cell2 = sheet.getCell(1, i);

cell3= sheet.getCell(2, i);

cell4= sheet.getCell(3, i);

cell5= sheet.getCell(4, i);if ("".equals(cell1.getContents())) {//如果读取的数据为空

break;

}

JSONObject object= newJSONObject();

object.put("ID",cell1.getContents());

object.put("编号",cell2.getContents());

object.put("姓名",cell3.getContents());

object.put("数量",cell4.getContents());

object.put("住址",cell5.getContents());

array.add(object);

}

System.out.println(array.toString());

book.close();

}catch(Exception e) {

e.printStackTrace();

}

}

}

b.xls文件:

302c6aa55fa9c561ba4e9ca00809c801.png

使用 java 代码读取 excel 文件代码时报错如下:

jxl.read.biff.BiffException: Unable to recognize OLE stream

at jxl.read.biff.CompoundFile.(CompoundFile.java:116)

at jxl.read.biff.File.(File.java:127)

at jxl.Workbook.getWorkbook(Workbook.java:268)

at jxl.Workbook.getWorkbook(Workbook.java:253)

原因:不支出读取 excel 2007 文件(*.xlsx)。只支持 excel 2003 (*.xls)。

将b.xls转换为2003版就可以了。

[{"姓名":"张三","数量":"100","住址":"浙江省杭州市","ID":"1","编号":"1001"},{"姓名":"李四","数量":"200","住址":"湖北省武汉市","ID":"2","编号":"1002"},{"姓名":"王五","数量":"300","住址":"广东省深圳市","ID":"3","编号":"1003"},{"姓名":"赵六","数量":"400","住址":"湖南省长沙市","ID":"4","编号":"1004"}]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值