Java Excel 导入导出(一)
本文主要描述通过java实现Excel导入导出
一、读写Excel三种常用方式
1.JXL——Java Excel开放源码项目:读取,创建,更新
2.POI——Apache POI ,提供API给Java程序对Microsoft Office格式文档案读和写的功能——使用其HSSF(Horrible SpreadSheet Format, 格式支持97-2003,高版本请使用:XSSF)
3.FASTEXCEL——采用纯java开发的excel文件读写组件,支持Excel97-2003,功能小,一般不用。
二、JXL和POI对比
POI:效率高,操作相对复杂,支持公式、宏、图像图表,一些企业应用上会非常实用,能够修饰单元格属性,支持字体、数字日期操作
JXL:效率低,操作简单,能够修饰单元格属性,格式支持不如POI强大,支持字体、数字、日期操作
三、JXL创建Excel,解析Excel
Eclipse-java Project-properties-java Build Path-Libraries-add Externa JARS-选择jxl.jar
1.创建Excel,添加数据
import java.io.File; import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook; public class JxlExpExcel { public static void main(String[] args) {
String[] title = { "id", "name", "sex" };
// 创建Excel文件
File file = new File("e:/jxl_test.xls");
try {
file.createNewFile();
// 创建工作薄
WritableWorkbook workbook = Workbook.createWorkbook(file);
// 创建Sheet
WritableSheet sheet = workbook.createSheet("sheet", 0);
Label label = null;
// 第一行设置列名
for (int i = 0; i < title.length; i++) {
label = new Label(i, 0, title[i]);
sheet.addCell(label);
}
// 追加数据
for (int i = 1; i < 10; i++) {
label = new Label(0, i, "" + i);
sheet.addCell(label);
label = new Label(1, i, "user" + i);
sheet.addCell(label);
label = new Label(2, i, "男");
sheet.addCell(label);
}
// 写入数据
workbook.write();
// 关闭流
workbook.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }
2.读取Excel中数据,打印在控制台
import java.io.File; import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook; public class JxlReadExcel {
public static void main(String[] args) {
File file =new File("e:/jxl_test.xls");
try {
//创建Workbook
Workbook workbook =Workbook.getWorkbook(file);
//创建工作表sheet
Sheet sheet=workbook.getSheet(0);
//读取数据,先行后列
for (int i = 0; i < sheet.getRows(); i++) {
for (int j = 0; j < sheet.getColumns(); j++) {
Cell cell=sheet.getCell(j, i);
System.out.print(cell.getContents()+" ");
}
System.out.println();
}
//关闭流
workbook.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
四、POI创建、解析EXCEL
Eclipse-java Project-properties-java Build Path-Libraries-add Externa JARS-选择poi.jar和commons-io.jar
1.POI创建Excel,添加数据
import java.io.File;
import java.io.FileOutputStream; import org.apache.commons.io.FileUtils;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook; public class ExcelPOI {
public static void main(String[] args) {
String[] title = { "id", "name", "sex" };
// 创建EXCEl工作薄
HSSFWorkbook workbook = new HSSFWorkbook();
// 创建一个工作表sheet
HSSFSheet sheet = workbook.createSheet();
// 创建第一行
HSSFRow row = sheet.createRow(0);
// 插入第一行数据,id、name、sex
for (int i = 0; i < title.length; i++) {
HSSFCell cell = row.createCell(i);
cell.setCellValue(title[i]);
}
// 追加数据
for (int i = 1; i <= 10; i++) {
HSSFRow nextRow = sheet.createRow(i); HSSFCell cell2 = nextRow.createCell(0);
cell2.setCellValue("a" + i); cell2 = nextRow.createCell(1);
cell2.setCellValue("name" + i); cell2 = nextRow.createCell(2);
cell2.setCellValue("男" + i);
}
// 创建一个文件
File file = new File("e:/poi_test.xls");
//
try {
file.createNewFile();
// 将EXCEL存盘
FileOutputStream stream = FileUtils.openOutputStream(file);
workbook.write(stream);
// 关闭流
stream.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
2.POI解析Excel
import java.io.File;
import java.io.IOException; import org.apache.commons.io.FileUtils;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook; public class POIReadExcel { public static void main(String[] args) {
File file = new File("e:/poi_test.xls");
try {
HSSFWorkbook workbook = new HSSFWorkbook(FileUtils.openInputStream(file));
// 获取第一个工作表workbook.getSheet("Sheet0")
// HSSFSheet sheet =workbook.getSheet("Sheet0");
// 获取默认第一个工作表
HSSFSheet sheet = workbook.getSheetAt(0);
int firstRowNum = 0;
// 获取最后一行行号
int lastRowNum = sheet.getLastRowNum();
for (int i = firstRowNum; i <= lastRowNum; i++) {
HSSFRow row = sheet.getRow(i);
// 获取当前最后单元格列号
int lastCellNum = row.getLastCellNum();
for (int j = 0; j < lastCellNum; j++) {
HSSFCell cell = row.getCell(j);
String value = cell.getStringCellValue();
System.out.print(value + " ");
}
System.out.println();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }
3.POI创建高版本EXCEL(把HFFS替换成XFFS,同时引入相应的jar)
import java.io.File;
import java.io.FileOutputStream; import org.apache.commons.io.FileUtils;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class ExcelPOIXSSF {
public static void main(String[] args) {
String[] title = { "id", "name", "sex" };
// 创建EXCEl工作薄
XSSFWorkbook workbook = new XSSFWorkbook();
// 创建一个工作表sheet
XSSFSheet sheet = workbook.createSheet();
// 创建第一行
XSSFRow row = sheet.createRow(0);
// 插入第一行数据,id、name、sex
for (int i = 0; i < title.length; i++) {
XSSFCell cell = row.createCell(i);
cell.setCellValue(title[i]);
}
// 追加数据
for (int i = 1; i <= 10; i++) {
XSSFRow nextRow = sheet.createRow(i); XSSFCell cell2 = nextRow.createCell(0);
cell2.setCellValue("a" + i); cell2 = nextRow.createCell(1);
cell2.setCellValue("name" + i); cell2 = nextRow.createCell(2);
cell2.setCellValue("男" + i);
}
// 创建一个文件
File file = new File("e:/poi_test.xlsx");
//
try {
file.createNewFile();
// 将EXCEL存盘
FileOutputStream stream = FileUtils.openOutputStream(file);
workbook.write(stream);
// 关闭流
stream.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Java Excel 导入导出(一)的更多相关文章
- JAVA Excel导入导出
--------------------------------------------方式一(新)-------------------------------------------------- ...
- Java Excel导入导出(实战)
一.批量导入(将excel文件转成list) 1. 前台代码逻辑 1)首先在html页面加入下面的代码(可以忽略界面的样式) <label for="uploadFile" ...
- java Excel导入导出工具类
本文章,导入导出依赖提前定义好的模板 package com.shareworx.yjwy.utils; import java.io.File; import java.io.FileInputSt ...
- Java Excel 导入导出(二)
本文主要叙述定制导入模板——利用XML解析技术,确定模板样式. 1.确定模板列 2.定义标题(合并单元格) 3.定义列名 4.定义数据区域单元格样式 引入jar包: 一.预期格式类型 二.XML模板格 ...
- Java——excel导入导出demo
1. java导入 package xx; import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.userm ...
- java简易excel导入导出工具(封装POI)
Octopus 如何导入excel 如何导出excel github项目地址 Octopus Octopus 是一个简单的java excel导入导出工具. 如何导入excel 下面是一个excel文 ...
- Java 使用 Jxl 实现 Excel 导入导出
开发过程中经常需要用到数据的导入导出功能,之前用的是POI,这次使用JXL,JXL相对于POI来说要轻量简洁许多,在数据量不大的情况下还是非常实用的.这里做一下使用JXL的学习记录.首先需要导入相应的 ...
- java jxl excel 导入导出的 总结(建立超链接,以及目录sheet的索引)
最近项目要一个批量导出功能,而且要生成一个单独的sheet页,最后后面所有sheet的索引,并且可以点击进入连接.网上搜索了一下,找到一个方法,同时把相关的excel导入导出操作记录一下!以便以后使用 ...
- JAVA实现Excel导入/导出【转】
JAVA实现Excel导入/导出[转] POI的下载与安装 请到网站http://www.apache.org/dyn/closer.cgi/poi/右击超链接2.5.1.zip下载压缩包poi-bi ...
随机推荐
- 第一周第二部分 coursera.org
即使J(,)=,也不能是完美估计,因为其他数据可能存在误差 取任何颜色并沿着“圆”走,就可以得到相同的成本函数值,右图三个点的J(,)相同 越靠近圆心,J(,)越小 梯度下降算法可以将代价函数J()最 ...
- DataTable Linq Group Count where写法
DataTable dataTable = new DataTable(); dataTable.Columns.Add("username", typeof(string)); ...
- 生成Makefile文件全过程
[1]生成Makefile文件全过程 整体流程如下图: 注意:以下文件根目录为testmake(任意位置新建即可) (1)测试程序 1.1 建立两个目录:mkdir include source 1. ...
- 65 TCP连接中,流的关闭会造成Socket的关闭
转自:https://blog.csdn.net/u012525096/article/details/76924627 今天写安卓向服务器发送图片,过程为:客户端发送数据->服务器接收.处理数 ...
- 【搬运工】RHEL6.5 移植使用CentOS 的YUM 步骤
转载地址:http://www.cnblogs.com/rchen98/p/6056469.html 问题:使用 Red Hat Enterprise Linux Server(RHEL) yum安装 ...
- .NET CORE 中的缓存使用
Net Framewoke的缓存 1.1 System.Web.Caching System.Web.Caching应该是我们最熟悉的缓存类库了,做ASP.NET开发时用到缓存基本都是使用的这个缓存组 ...
- 『LCA 树链剖分』
LCA Description 给出一个n个节点的有根树(编号为0到n-1,根节点为0).一个点的深度定义为这个节点到根 的距离+1. 设dep[i]表示点i的深度,LCA(i,j)表示i与j的最近公 ...
- k8s-Node(节点)
k8s-Node(节点) Node(节点)是k8s集群中相对于Master而言的工作主机.Node可以是一台物理主机,也可以是一台虚拟机(VM).在每个Node上运行用于启动和管理Pid的服务Kube ...
- drools规则语法(一)
1.基本的匹配规则 1.1变量 drools使用匹配的方式对Fact进行比对, 比如 account : Account(balance > 100) 这个规则的含义就是在Fact中找到类型为A ...
- mysql 事务的实现原理
开篇 相信大家都用过事务以及了解他的特点,如原子性(Atomicity),一致性(Consistency),隔离型(Isolation)以及持久性(Durability)等.今天想跟大家一起研究下事务 ...