开发者社区> 凌浩雨> 正文

Android Jxl读写Excel

简介: Jxl 包下载 Android Studio 依赖 compile 'net.sourceforge.jexcelapi:jxl:2.6.12' 本测试在Exlipse中, 由于Jxl的跨平台性。
+关注继续查看

Jxl 包下载

Android Studio 依赖

    compile 'net.sourceforge.jexcelapi:jxl:2.6.12'

本测试在Exlipse中, 由于Jxl的跨平台性。

  1. 创建Excel表

/**
 * 创建Excel
 * Created by mazaiting on 2017/9/28.
 */
public class WriteExcel {
  /**Sheet表, Excel表中的底部的表名*/
  private WritableSheet mWritableSheet;
  /**Excel工作簿*/
  private WritableWorkbook mWritableWorkbook;
  
  public static void main(String[] args) throws WriteException, IOException {
    WriteExcel excel = new WriteExcel();
    excel.create("test");
    for (int i = 0; i < 10; i++) {
        excel.addString(0, i, "text"+i);
        excel.addString(1, i, "text"+i+"-1");
        excel.addString(2, i, "text"+i+"-2");
    }
    excel.close();
  }

  /**
   * 创建Sheet表
   * @param fileName 文件名
   * @return Sheet表
   */
  public WritableSheet create(String fileName){
    try {
      // 输出Excel的路径
      String filePath = "E:/"+fileName+".xls";
      // 新建一个文件
      OutputStream os = new FileOutputStream(filePath);
      // 创建Excel工作簿
      mWritableWorkbook = Workbook.createWorkbook(os);
      // 创建Sheet表
      mWritableSheet =  mWritableWorkbook.createSheet("第一张工作表", 0);
      return  mWritableSheet;
    } catch (IOException e) {
      e.printStackTrace();
    }
    return null;
  }

  /**
   * 关闭工作簿
   * @throws IOException
   * @throws WriteException
   */
  public void close() throws IOException, WriteException {
    // 写入数据
    mWritableWorkbook.write();
    // 关闭文件
    mWritableWorkbook.close();
  }

  /**
   * 添加字符串
   * @param col 列号
   * @param row 行号
   * @param text 文本
   * @throws WriteException
   */
  public void addString(int col, int row, String text) throws WriteException {
    if (null == mWritableSheet) return;
    Label label = new Label(col, row, text);
    mWritableSheet.addCell(label);
  }

  /**
   * 添加数字
   * @param col 列号
   * @param row 行号
   * @param num 数字
   * @throws WriteException
   */
  public void addInt(int col, int row, int num) throws WriteException {
    if (null == mWritableSheet) return;
    Number number = new Number(col, row, num);
    mWritableSheet.addCell(number);
  }
}
  1. 读取Excel表

/**
 * 读取Excel
 */
public class ReadExcel {
    
    public static void main(String[] args) {
        // 字符列表
        List<String> list = new ArrayList<String>();
        // 文件路径
        String filePath = "E:/test.xls";
        // 输入流
        InputStream is = null;
        // Excel工作簿
        Workbook workbook = null;
        
        try {
            // 加载Excel文件
            is = new FileInputStream(filePath);
            // 获取workbook
            workbook = Workbook.getWorkbook(is);
        } catch (Exception e) {}
        
        // 获取sheet, 如果你的workbook里有多个sheet可以利用workbook.getSheets()方法来得到所有的
        Sheet sheet = workbook.getSheet(0);// 这里只取得第一个sheet的值,默认从0开始
        System.out.println(sheet.getColumns());// 查看sheet的列
        System.out.println(sheet.getRows());// 查看sheet的行
        
        Cell cell = null;// 单个单元格
        // 开始循环,取得cell里的内容,按具体类型来取
        // 这里只取String类型
        for (int j = 0;j<sheet.getColumns();j++){
            StringBuffer sb = new StringBuffer();
            for (int i=0;i<sheet.getRows();i++){
                // 列,行
                cell = sheet.getCell(j, i);
                sb.append(cell.getContents());// 获取单元格内容
                sb.append(",");// 将单元格的每行内容用逗号隔开
            }
            list.add(sb.toString());//将每行的字符串用一个String类型的集合保存。
        }
        
        workbook.close();// 关闭工作簿
        
        // 迭代集合查看每行的数据
        for (String ss : list){
            System.out.println(ss);
        }
    }
}

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Android Jxl读写Excel
Jxl 包下载 Android Studio 依赖 compile 'net.sourceforge.jexcelapi:jxl:2.6.12' 本测试在Exlipse中, 由于Jxl的跨平台性。
1824 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
17714 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
23696 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
18726 0
poi对excel的基本读写操作
最近简单的弄了下poi对excel的应用,为方便自己以后的使用就把一些基本操作记录下来,其他更复杂的操作可以等以后有需求的时候再来深入了解一番!   写操作: /** * * 层次结构就是workbook-->Sheet-->Row-->Cell * 只要按照这种层次...
779 0
Android NFC开发教程(3): Mifare Tag读写示例
前面例子介绍了检测,读写NFC TAG开发的一般步骤,本例针对常用的Mifare Tag 具体说明。 Mifare Tag 可以有1K ,2K, 4K,其内存分区大同小异,下图给出了1K字节容量的Tag的内存分布:   数据分为16个区(Se...
852 0
Python读写excel
1 #-*- coding:utf-8 -*- 2 #__author__ = 'liu-ke' 3 import xlrd 4 from xlutils.copy import copy 5 mybook = xlrd.
800 0
+关注
凌浩雨
毕业于贵州大学大数据与信息工程学院,目前是一名移动端工程师,就职于北京乾元大通信息技术有限责任公司。
398
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载