1、将excel导入到内存

1、 调用工作簿Workbook的静态方法getWorkbook(),获得工作簿Workbook对象

  InputStream in = new FileInputStream(file);
  Workbook wb = Workbook.getWorkbook(in);

2、 获取Excel表中的工作表格Sheet
3、 获取行、列
  sheet.getRows();
  sheet.getColumns();
4、 读取单元格内容
  String result = cell.getContents();
5、 关闭工作簿Workbook
  wb.close();

  • 代码演示
    // 实现读学生文件,将读出的信息存放于student集合中
public List<Student> ReadFromExcel(String fileName) { List<Student> list = new ArrayList<Student>();
File file = new File(fileName);
try {
InputStream in = new FileInputStream(file);
Workbook wb = Workbook.getWorkbook(in);
Sheet s = wb.getSheet(0);
for(int i = 1; i < s.getRows(); i++) //第一行不要
{
Cell[] row = s.getRow(i);
Student student = new Student(row[0].getContents(), row[1].getContents(), //填充数据
row[2].getContents(), Float.parseFloat(row[3].getContents()),
Float.parseFloat(row[4].getContents()), Float.parseFloat(row[5].getContents()));
//由于读取的数据全部都是String 类型所以要转换成Float类型
student.setTotalScore(student.getEnglish()+student.getJava()+student.getMath());
student.setAverage(student.getTotalScore()/3);
list.add(student);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (BiffException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} return list;
}

2、将数据写到excel表格中

1、 获取可写入工作簿WritableWorkbook对象
  WritableWorkbook wwb = Workbook.createWorkbook(filename);
2、 创建工作表格Sheet名称
  WritableSheet sheet = book.createSheet("Sheet1",0);
3、 将内容放入对应的行和列

  sheet.addCell(new Label(j, i, info);//j表示列,i表示行,info表示写入的内容
  //在Excel中第一个参数是列,第二个参数是行,如A1

4、 写入并关闭工作簿Workbook

  wwb.write();
  wwb.close();
  • 代码演示
    // 将集合中的数据写入到excel文件中
public void WriteExcel(List<Student> list, String fileName) {
File file = new File(fileName);
try {
OutputStream out = new FileOutputStream(file);
WritableWorkbook wwb = Workbook.createWorkbook(out);
WritableSheet ws = wwb.createSheet("Sheet1", 0);
String info[] = {"id","name","gender","java","english","math"};
for(int j=0;j<6;j++){
Label label = new Label(j, 0, info[j]);
ws.addCell(label);
}
for(int i = 0;i < list.size();i++)
{
Label l = new Label(0, i+1, list.get(i).getId());//在Excel中,第一个参数表示列,第二个表示行
Label l2 = new Label(1, i+1, list.get(i).getName());
Label l3 = new Label(2, i+1, list.get(i).getGender());
Label l4 = new Label(3, i+1, String.valueOf(list.get(i).getJava()));
Label l5 = new Label(4, i+1, String.valueOf(list.get(i).getEnglish()));
Label l6 = new Label(5, i+1, String.valueOf(list.get(i).getMath()));
ws.addCell(l);
ws.addCell(l2);
ws.addCell(l3);
ws.addCell(l4);
ws.addCell(l5);
ws.addCell(l6);
} wwb.write();//从内存中写入文件中
wwb.close();//关闭资源,释放内存
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (RowsExceededException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (WriteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }

Java IO 导入导出Excel表格的更多相关文章

  1. Java代码导入导出 Excel 表格最简单的方法

    import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStrea ...

  2. Java中导入导出Excel -- POI技术

    一.介绍: 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实 ...

  3. PHP导入导出excel表格图片(转)

    写excel的时候,我用过pear的库,也用过pack压包的头,同样那些利用smarty等作的简单替换xml的也用过,csv的就更不用谈了.呵呵.(COM方式不讲了,这种可读的太多了,我也写过利用wp ...

  4. PHP导入导出excel表格图片的代码和方法大全

    基本上导出的文件分为两种: 1:类Excel格式,这个其实不是传统意义上的Excel文件,只是因为Excel的兼容能力强,能够正确打开而已.修改这种文件后再保存,通常会提示你是否要转换成Excel文件 ...

  5. Java利用POI实现导入导出Excel表格示例代码

    转自:https://www.jb51.net/article/95526.htm 介绍 Jakarta POI 是一套用于访问微软格式文档的Java API.Jakarta POI有很多组件组成,其 ...

  6. Java Annotation 应用 -- 导出Excel表格

    相关知识链接: Introspector(内省) POI 1.声明注解 package com.ciic.component.excel; import java.lang.annotation.El ...

  7. Java实现导入导出Excel:POI和EasyExcel

    文章与CSDN同步,欢迎访问:https://blog.csdn.net/qq_40280582/article/details/107300081 代码地址:https://gitee.com/il ...

  8. Java POI导入导出Excel

    1.异常java.lang.NoClassDefFoundError: org/apache/poi/UnsupportedFileFormatException 解决方法: 使用的poi的相关jar ...

  9. java基础篇 -- 导出excel表格数据

    本篇文章基于java把数据库中的数据以Excel的方式导出,欢迎各位大神吐槽: 1.基于maven jar包引入如下: <dependency> <groupId>net.so ...

随机推荐

  1. 创建JavaScript函数的几种方式

    window.onload = function() { // console.log('ok'); //正规的创建函数 function test(abc, d) { return abc(d); ...

  2. mac电脑Git提交代码到Github提示git-credential-osxkeychain 验证解决方案

    ## 啊哈哈 这个简单,直接给出当前mac电脑登录账号密码即可,^_*,拿走不谢!!

  3. AspNetCore中的IdentityServer4客户端认证模式实现

    1 AuthorizationServer using IdentityServer4; using IdentityServer4.Models; public class Startup { pu ...

  4. 关于python的展望

    在未接触这门课程以前,我完全对编程一类的操作毫无兴趣.但在短短的两星期时间里,我改变了想法,原因有二.其一是老师幽默,其二是课程实用性高.我希望课程以后可以继续沿用现在由浅入深,给予足够提示的方式,引 ...

  5. Latex引用\ref

    在等式/图/定理等后面加\label{name} 正文引用方法:等式使用 \eqref{name},非等式引用可使用\ref{name}.

  6. python模块:subprocess

    # subprocess - Subprocesses with accessible I/O streams # # For more information about this module, ...

  7. suse 11 pip pip3使用过程中遇到的各种问题

    在安装完成python3.6后,使用pip3安装某些插件,报如下错误 linux-9qk9:~ # pip3 install ipython pip is configured with locati ...

  8. java面试一、1.5JVM

    免责声明:     本文内容多来自网络文章,转载为个人收藏,分享知识,如有侵权,请联系博主进行删除. 1.5.JVM JVM运行时内存区域划分

  9. vue组件自定义属性命名

    今天自己写vue组件demo的时候发现一个有趣的问题:vue组件自定义属性命名不支持用驼峰命名! 上面图示为正常情况下的自定义属性,没有任何问题. 但是一旦出现自定义属性中包含了大写字母,则如下图所示 ...

  10. retrofit+rxjava封装

    public class RetrofitHelper { private static OkHttpClient okHttpClient; private static ServiceAPI se ...