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. ubuntu16.04安装tensorflow1.3

    总结 : 1.点软件个更新-系统更新2.降级gcc到5.33.装CUDA及第二个包,加入PATH4.CUDNN5.Ancada..6.TF Ubuntu16.04 的GCC版本降级 http://bl ...

  2. Jmeter如何把响应数据的结果保存到本地的一个文件

    当做性能压测时,可能会需要把响应数据的一些字段统计出来.这里简单介绍一下. 1.首先把接口调通,确定需要统计的字段,这里以统计ccmpSeq字段来做例子. 2.添加正则表达式提取器,用来提取响应结果中 ...

  3. eclipse遇到启动报an error has occurred see the log file错

    错误: 修改eclipse安装目录下比如D:\eclipse\configuration\.settings\org.eclipse.ui.ide.prefs, 删除 RECENT_WORKSPACE ...

  4. RHCSA之路(1) -- 重拾RHEL 7

    去年就买了Linux就该这么学这本书,在自己电脑上和实验室里的电脑都按照书上写的配置安装好了RHEL 7系统,然后看到了第二章就被别的事情吸引了注意力就再也没碰过了.现在希望自己能专注下来,一步一步做 ...

  5. Notepad++编写运行python程序

    Notepad++编写运行python程序. 1.菜单栏->语言->P->Python设置语言为Python 2.写好代码后ctrl+s保存文件为py文件 3.菜单栏->运行, ...

  6. 挑选队友 (生成函数 + FFT + 分治)

    链接:https://www.nowcoder.com/acm/contest/133/D来源:牛客网 题目描述 Applese打开了m个QQ群,向群友们发出了组队的邀请.作为网红选手,Applese ...

  7. 哈夫曼(Huffman)树和哈夫曼编码

    一.哈夫曼(Huffman)树和哈夫曼编码 1.哈夫曼树(Huffman)又称最优二叉树,是一类带权路径长度最短的树, 常用于信息检测. 定义: 结点间的路径长度:树中一个结点到另一个结点之间分支数目 ...

  8. ADO.NET学习笔记(1)

    ADO.Net是.Net框架中为数据库的访问而封装的一个库.通过这个库我们可以简单便捷的访问数据库,并对数据库进行一些增删改查的操作,目前ADO.Net支持四种主流的数据库,分别是SQL.OLE DB ...

  9. Elasticsearch System Call Filters Failed to Install

    Elasticsearch starts to run, error occurs: : system call filters failed to install; check the logs a ...

  10. STM32CubeMX+Keil裸机代码风格(1)

    1.打开STM32CubeMX,New project 选好自己要用的芯片 2.选上左侧SYS中的debug Serial Wire(定义烧程序的端口) . 3,选上左侧TIM6,使TIM6可用(TI ...