java 读取excel内容转为JSONArray

需要引入的JAR

    <!--*.xls-->
        <dependency>
            <groupId>net.sourceforge.jexcelapi</groupId>
            <artifactId>jxl</artifactId>
            <version>2.6.8</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.7</version>
        </dependency>

测试类

package com.taobao.tair;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;

import java.io.File;

public class Excel {
    public static void main(String[] args) {
        Sheet sheet;
        Workbook book;
        Cell cell1, cell2, cell3, cell4, cell5;
        JSONArray array = new JSONArray();
        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 = new JSONObject();
                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文件:

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

jxl.read.biff.BiffException: Unable to recognize OLE stream
    at jxl.read.biff.CompoundFile.<init>(CompoundFile.java:116)
    at jxl.read.biff.File.<init>(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"}]

 

时间: 2024-09-20 05:38:59

java 读取excel内容转为JSONArray的相关文章

java 读取excel内容具体代码_java

1. 需要下载jxl.jar包,自己研究了一下,代码如下 复制代码 代码如下: package file;import java.io.File;import java.io.IOException;import java.util.ArrayList;import java.util.HashMap;import java.util.Map; import jxl.Workbook;import jxl.read.biff.BiffException;import jxl.write.*;im

java读取excel表格内容

问题描述 java读取excel表格内容 java读取excel表格内容,中间有好多空格,空格下面还有字,但是我就想读到空格上面,下面的不想读了,该怎么办呢 解决方案 使用POI组建读excel数据 解决方案二: POI 读取行列都可以的 . 解决方案三: 使用POI组建读excel数据,然后进行判断,空格就结束 解决方案四: 读到固定的某一行某一列就行了,,, 解决方案五: POI读取excel 时,是循环行读取的,在读取行数据时判断当前行数据是否为空,如果为空就跳出循环

JAVA利用jxl读取Excel内容

JAVA可以利用jxl简单快速的读取文件的内容,但是由于版本限制,只能读取97-03  xls格式的Excel. 1 import java.io.File; 2 import java.io.FileInputStream; 3 4 import jxl.Cell; 5 import jxl.Sheet; 6 import jxl.Workbook; 7 8 9 public class testxls { 10 /** 11 * 读取xls文件内容 12 * @param file 想要读取

Java读取文件内容的小例子

Java 提供 BufferedReader 类用来从流中读取字符串.FileReader 类用来读取文件.我们用这两个类来读取文件中的字符串. 下面是一个例子: import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;public class ReadFile{ public static void main(String[] args){ String path="c:/1.txt&

excel文件-怎样通过JSP页面上传个Excel文件,并实现Java读取EXCEL存入数据库

问题描述 怎样通过JSP页面上传个Excel文件,并实现Java读取EXCEL存入数据库 用的语言是servlet+jsp+mysql和后面两个包commons-fileupload-1.3.1.jar jxl.jar 在线等,有没有会这个代码的大神 解决方案 两篇上传的,一篇jxl操作excel的.拼起来就是你要的http://www.the5fire.com/JSP%E4%B8%8A%E4%BC%A0%E6%96%87%E4%BB%B6%E7%AE%80%E5%8D%95%E5%AE%9E%

ASP.NET实现读取Excel内容并在Web上显示_实用技巧

本文实例讲述了ASP.NET实现读取Excel内容并在Web上显示的方法,是非常实用的一个功能,分享给大家供大家参考.具体实现方法如下: 点击事件代码.cs代码如下: protected void Button1_Click(object sender, EventArgs e) { string strPath = "d:/test.xls"; string mystring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source

java代码-关于poi类java读取Excel文件出现ioexception异常Invalid header signature

问题描述 关于poi类java读取Excel文件出现ioexception异常Invalid header signature 读取是因为头部文件无法识别,我按一般方法是另存为就可以了,有没别的方法是通过代码实现的,我写的功能是通过jsp来上传excel到临时文件,在用poi类来读取,所以打开excel另存为的方法不适合我,求救,很急 解决方案 用poi处理excel文件异常:java.io.IOException: Invalid header signature; read 23380427

php excel reader读取excel内容存入数据库实现代码_php实例

上一篇文章介绍了php-excel-reader读取excel文件的方法,因为需要,将excel这样的数据: 新建数据库表如下: -- 数据库: `alumni` -- 表的结构 `alumni` CREATE TABLE IF NOT EXISTS `alumni` (   `id` bigint(20) NOT NULL AUTO_INCREMENT,   `gid` varchar(20) DEFAULT NULL COMMENT '档案编号',   `student_no` varcha

Java解析Excel内容的方法_java

本文实例讲述了Java解析Excel内容的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: import java.io.File;  import java.io.FileInputStream;  import java.io.InputStream;  import java.util.ArrayList;  import org.apache.poi.hssf.usermodel.HSSFWorkbook;  import org.apache.poi.ss.user