文档章节

java 读取excel文件

不打伞的小鱼
 不打伞的小鱼
发布于 2015/07/10 10:41
字数 495
阅读 39
收藏 0

  我查了下资料,大概了解到二者的区别:apache的poi是跨平台的,可以读取Microsoft office 文件(world,excel等),但是功能比较复杂,可能不太容易上手。而jxl.jar 是专门针对读取excel文件的,需要下载jexcelapi_2_6_12.tar.gz ,解压出来jxl.jar.

  我使用的是jxl.jar的方式,主要参考了 http://blog.csdn.net/tkd03072010/article/details/6692366  这篇文章。

  下面看看我写的代码:

  

package com.arche.alderman.mvc.pub.controller.implement;


import com.arche.alderman.mvc.base.controller.BaseAction;

import jxl.Cell;

import jxl.Sheet;

import jxl.Workbook;

import jxl.read.biff.BiffException;


import java.io.File;

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;


import static com.arche.alderman.constant.ActionResultString.ACTION_RESULT_JSON;

import static com.arche.alderman.constant.ResponseStatusCode.REP_SERVER_HANDLE_SUCCESS;


/**

 * Created by hexiaoyu on 2015/7/9.

 */

public class TestReadExcel extends BaseAction{


    public String readExcel(){


        try {

            String fileName = "C:/Users/dswl/Desktop/s.xlsx"; // Excel文件所在路径

            File file = new File(fileName); // 创建文件对象

            Workbook wb = Workbook.getWorkbook(file); // 从文件流中获取Excel工作区对象(WorkBook)

            Sheet sheet = wb.getSheet(0); // 从工作区中取得页(Sheet)


            List<String> list = new ArrayList();


            for (int i = 0; i < sheet.getRows(); i++) { // 循环打印Excel表中的内容

                for (int j = 0; j < sheet.getColumns(); j++) {

                    Cell cell = sheet.getCell(j, i);

                    System.out.println(cell.getContents());

                    list.add(j,cell.getContents());

                }

            }

            System.out.println(list.size());

            setServerResponseResult(REP_SERVER_HANDLE_SUCCESS, null, list);

        } catch (BiffException e) {

            e.printStackTrace();

        } catch (IOException e) {

            e.printStackTrace();


        }

        return ACTION_RESULT_JSON;

    }

}

代码很简洁,我也测试过,是可以读取的,因为我是要返回到页面上,所以是放到list中,再以json的形式返回的。

有遇到值得注意的问题是:初次读取会报错--Unable to recognize OLE stream,网上说是不能读取.xlsx(office2007+),只能读取.xls(office2003),但是我发现只需要自己新建一个.xlsx文件,然后把原来文件里的内容考进来就可以读取~\(≧▽≦)/~啦啦啦!

哈哈~虽然今天老大说不用动态读取了,但又学到了一点,还是很开心!继续努力咯!




© 著作权归作者所有

不打伞的小鱼
粉丝 69
博文 42
码字总数 24218
作品 0
深圳
程序员
私信 提问
Java读取Excel数据:基于Apache POI(一)

版权声明:本文为Zhang Phil原创文章,请不要转载! https://blog.csdn.net/zhangphil/article/details/85302347 Java读取Excel数据:基于Apache POI(一) Java本身不支持直接读取微软的Exc...

zhangphil
2018/12/27
0
0
PageOffice V4.0 Excel常用的接口对象---Workbook类

Workbook 类代表一个Excel文档,用来动态输出数据到Excel文档并且控制其表格格式及编辑功能。Workbook 对象是PageOffice开发平台定义的Excel数据输出对象,可作为PageOfficeCtrl.SetWriter ...

山里的红杏
2018/09/11
15
0
Java程序员从笨鸟到菜鸟之(一百零四)java操作office和pdf文件(二)利用POI实现数据导出excel报表

在上一篇博客中,我们简单介绍了java读取word,excel和pdf文档内容 ,但在实际开发中,我们用到最多的是把数据库中数据导出excel报表形式。不仅仅简单的读取office中的数据.尤其是在生产管理...

长平狐
2012/11/12
1K
0
Java读取导入Excel文件解析

在编程中经常需要使用到表格(报表)的处理主要以Excel表格为主。下面给出用java读取excel表格方法:   1.添加jar文件   java导入导出Excel文件要引入jxl.jar包,最关键的是这套API是纯J...

_白开水_
2013/10/24
52.3K
8
POI框架:Java程序读取Excel

What:POI是什么? Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。 HOW:如何使用java程序读取Excel文件中的内容? 1.坐标(导...

aboyliupu
2018/07/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

怎样在磁盘上查找MySQL表的大小?这里有答案

导读 我想知道 MySQL 表在磁盘上占用多少空间,但看起来很琐碎。不应该在 INFORMATION_SCHEMA.TABLES 中提供这些信息吗?没那么简单! 我想知道 MySQL 表在磁盘上占用多少空间,但看起来很琐碎...

问题终结者
30分钟前
6
0
jQuery load() 方法实现加载远程数据

jQuery load() 方法是简单但强大的 AJAX 方法。load() 方法从服务器加载数据,并把返回的数据放入被选元素中。 语法: $(selector).load(URL,data,callback);必需的 URL 参数规定您希望加载的...

前端老手
31分钟前
5
0
Spring Boot缓存实战 Redis 设置有效时间和自动刷新缓存-2

问题 上一篇Spring Boot Cache + redis 设置有效时间和自动刷新缓存,时间支持在配置文件中配置,说了一种时间方式,直接扩展注解的Value值,如: @Override@Cacheable(value = "people#${s...

xiaolyuh
39分钟前
9
0
怎样在磁盘上查找MySQL表的大小?这里有答案

我想知道 MySQL 表在磁盘上占用多少空间,但看起来很琐碎。不应该在 INFORMATION_SCHEMA.TABLES 中提供这些信息吗?没那么简单! 我想知道 MySQL 表在磁盘上占用多少空间,但看起来很琐碎。不应...

Linux就该这么学
今天
5
0
Redis

一、Redis支持的几种数据类型:字符串、List、SET、HASH、ZSET 二、Redis的缓存技术主要是为了降低关系数据库的负载并减少网站成本 三、在Redis里面,被MULTI命令和EXEC命令包围的所有命令会...

BobwithB
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部