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 ...
随机推荐
- centos下导出docx为html
yum -y install libreoffice.x86_64 libreoffice --invisible --convert-to html --outdir /root/demo_html ...
- 二叉树 & 平衡二叉树 算法(Java实现)
二叉树 比如我要依次插入10.3.1.8.23.15.28.先插入10作为根节点: 然后插入3,比10小,放在左边: 再插入1,比10和3小,放在3左边: 再插入8,比10小,比3大,放在3右边: 再 ...
- 所谓的SaaS服务到底是什么?
先从SaaS说起,SaaS是英文Soft as a Service(软件即服务)的简写.SaaS并不是指代一个行业或者一种技术,它是一种2B的专业型软件租赁使用模式. 什么是专业型软件? 就是为了解决 ...
- 数据结构部分总结(c语言版)
这是一个 /*此头文件适用于串其中包括最基本的函数操作 OK代表成功NO代表失败FS为特殊失败的标志 注:此头文件中的初始化使用'0'代表结束的 使用者可以根据需要自行改变,最后一 个函数为KMP算法 ...
- .net(2)
11.interface是否可继承interface?abstract class 是否可实现interface 回答1:接口可以继承接口,而且可以继承多个接口,用“,”进行分割,接口不允许直接或间接 ...
- 配置 Nginx 反向代理 WebSocket
用Nginx给网站做反向代理和负载均衡是广泛使用的一种Web服务器部署技术.不仅能够保证后端服务器的隐蔽性,还可以提高网站部署灵活性. 今天我们来讲一下,如何用Nginx给WebSocket服务器实现 ...
- 打印出三位数的水仙花数Python
水仙花数计算 ...
- InheritableThreadLocal详解
InheritableThreadLocal详解 https://www.jianshu.com/p/94ba4a918ff5 InheritableThreadLocal——父线程传递本地变 ...
- 阿里云服务器连接ftp服务(软件的使用)
首先你需要有一个阿里云的ECS服务器 开通了宽带之后,ECS服务器就可以上网了 可以在本地电脑cmd控制台运行mstsc.exe启动远程桌面连接 windows+R 计算机名输入ECS服务器的公网ip ...
- WebAPI 身份认证解决方案——Phenix.NET企业应用软件快速开发平台.使用指南.21.WebAPI服务(一)
21 WebAPI服务 ASP.NET Web API,是微软在.NET Framework 4.5上推出的轻量级网络服务框架,虽然作为ASP.NET MVC 4的一部分,但却是一套全新的.独立的 ...