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 ...
随机推荐
- ArcSOC进程数不断增长导致oracle processes溢出原因分析
现场出现了一个问题,oracle运行一段时间之后,process个数会溢出,然后新的连接会失败.通过分析,发现Arcgis Server 的ArcSOC进程在不段增长.ArcSOC是arcgis se ...
- AKKA HTTP 简单示例
AKKA HTTP 简单示例 依赖包: compile("com.typesafe.akka:akka-http_2.13:10.1.8") compile("com.t ...
- HTML5 Canvas实战之刮奖效果【转】
开源项目地址:https://github.com/artwl/Lottery 作者博客地址:http://www.cnblogs.com/jscode/p/3580878.html 谢谢浏览!
- Replication:事务复制 Subscriber的主键列是只读的
在使用Transactional Replication时,Subscriber 被认为是“Read-Only”的 , All data at the Subscriber is “read-only ...
- 使用DbVisualizer 10.0.20 查询ES中的索引时需要注意的事项
查询前5条数据 光标停在某一个查询结果框中,左下角会显示该字段的类型 查询类型是text的字段使用单引号,使用双引号查询会报错
- 打印出三位数的水仙花数Python
水仙花数计算 ...
- ASP.NET中App_Data等文件夹的作用
文件夹名称 文件类型 注 释 Bin .dll 包含应用程序所需的任何预生成的程序集 App_Browsers .browser 包含应用程序特有的浏览器定义文件,ASP.NET用它来识别各浏览器 ...
- 图像上划凸多边形(convexHull()函数)
import numpy as npimport cv2 as cvimg=np.zeros((400,410),np.uint8)points=np.random.randint(100,400,( ...
- Java自学-基本变量类型
Java中的基本变量类型 一个变量的类型,决定了该变量可以包含什么样的值. Java中有八种基本类型,都是Java语言预先定义好的,并且是关键字. 这八种基本类型分别是: 整型 (4种) 字符型 (1 ...
- python基础01day
1 python多版本共存 因为python2和python3的解释器程序都是python.exe,在同时加入环境变量的情况下名称重复,如果重命名的话又会造成需要链接解释器的程序无法调用解释器,所以采 ...