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 ReadFromExcel(String fileName) {
List list = new ArrayList();
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 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代码导入导出 Excel 表格最简单的方法
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStrea ...
Java中导入导出Excel -- POI技术
一.介绍: 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实 ...
PHP导入导出excel表格图片(转)
写excel的时候,我用过pear的库,也用过pack压包的头,同样那些利用smarty等作的简单替换xml的也用过,csv的就更不用谈了.呵呵.(COM方式不讲了,这种可读的太多了,我也写过利用wp ...
PHP导入导出excel表格图片的代码和方法大全
基本上导出的文件分为两种: 1:类Excel格式,这个其实不是传统意义上的Excel文件,只是因为Excel的兼容能力强,能够正确打开而已.修改这种文件后再保存,通常会提示你是否要转换成Excel文件 ...
Java利用POI实现导入导出Excel表格示例代码
转自:https://www.jb51.net/article/95526.htm 介绍 Jakarta POI 是一套用于访问微软格式文档的Java API.Jakarta POI有很多组件组成,其 ...
Java Annotation 应用 -- 导出Excel表格
相关知识链接: Introspector(内省) POI 1.声明注解 package com.ciic.component.excel; import java.lang.annotation.El ...
Java实现导入导出Excel:POI和EasyExcel
文章与CSDN同步,欢迎访问:https://blog.csdn.net/qq_40280582/article/details/107300081 代码地址:https://gitee.com/il ...
Java POI导入导出Excel
1.异常java.lang.NoClassDefFoundError: org/apache/poi/UnsupportedFileFormatException 解决方法: 使用的poi的相关jar ...
java基础篇 -- 导出excel表格数据
本篇文章基于java把数据库中的数据以Excel的方式导出,欢迎各位大神吐槽: 1.基于maven jar包引入如下: net.so ...
随机推荐
iOS - UIWindow
前言 NS_CLASS_AVAILABLE_IOS(2_0) @interface UIWindow : UIView @available(iOS 2.0, *) public class UIWi ...
Does not contain a valid host;port authority解决方法
ERRORorg.apache.hadoop.hdfs.server.namenode.NameNode: java.lang.IllegalArgumentException: Does not c ...
[Git] MAC上Git初探
1.基本设置,包括用户名.邮箱.编辑工具.查看设置.帮助等 $ git config --global user.name "John Doe" $ git config --gl ...
sql union代替or
---原始SQL SQL> SELECT deptno FROM emp WHERE empno = 7788 OR job = 'SALESMAN' ORDER BY 1; DEPTNO -- ...
.net使用cefsharp开源库开发chrome
.net使用cefsharp开源库开发chrome 离上篇写介绍pc端的混合开发和为什么以cefsharp入手研究混合开发已经有好几天,一直忙,抽不出时间继续写怎么搭建cefsharp开发环境.其实没 ...
Python基础知识学习_Day3
一.字典用法 字典是一种key-value数据类型,通过key获取具体value的内容,字典的特性是无序.去重. 增删改查用法如下: 1.1基本增删改查操作 name = {"," ...
Django之路: 模版篇
一.Django 模版 上章是介绍简单的把django.http.HttpResponse的内容显示到网页上,下面就介绍以下如何使用渲染模版的方法来显示内容.本节代码是基于Django 1.8,但 ...
基于CDIF实现的——API在线自动化测试
传统的测试工具在测试一个API的时候,必须手动填写这个API所需要接收的所有信息,比如一个查询航班动态的API,他接收两个输入字段,一个叫flight, 一个叫date,那么测试这个API的用户,需要 ...
c# xml操作(一)
c# xml操作(一) 此博文包含图片 (-- ::)转载▼ 标签: 杂谈 分类: c# 同样是增,删,改,查四种操作.现在我们就详细介绍一下增和删两种操作.看下面的一个xml示例:
《剑指offer》 包含min函数的栈
本题来自 包含min函数的栈 题目: 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 思路: 举例子让抽象问题具体 ...