Java实现导入导出Excel文件的方法

目前,比较常用的实现Java导入、导出Excel的技术有两种Jakarta POI和Java Excel

直接上代码:

一,POI

POI是apache的项目,可对微软的Word,Excel,Ppt进行操作,包括office2003和2007,Excl2003和2007。poi现在一直有更新。所以现在主流使用POI。

xls:

pom:

org.apache.poi

poi-ooxml

3.9

commons-io

commons-io

2.2

导出:

public class PoiCreateExcel {

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);

HSSFCell cell = null;

// 插入第一行

for (int i = 0; i < title.length; i++) {

cell = row.createCell(i);

cell.setCellValue(title[i]);

}

// 追加数据

for (int i = 1; i < 10; i++) {// 这里的int 起始是1 也就是第二行开始

HSSFRow nexTrow = sheet.createRow(i);

HSSFCell cell2 = nexTrow.createCell(0);

cell2.setCellValue("a"+i);

cell2 = nexTrow.createCell(1);

cell2.setCellValue("user");

cell2 = nexTrow.createCell(2);

cell2.setCellValue("男");

}

// 创建一个文件

File file = new File("d:/poi.xls");

try {

file.createNewFile();

// 将内容存盘

FileOutputStream stream = FileUtils.openOutputStream(file);

workbook.write(stream);

stream.close();

} catch (Exception e) {

e.printStackTrace();

}

}

}

导入:

public class PoiReadExcel {

public static void main(String[] args) {

// 引入需要解析的文件

File file = new File("d:/poi.xls");

try {

// 创建Excel 读取文件内容

HSSFWorkbook workbook = new HSSFWorkbook(FileUtils.openInputStream(file));

/**

* 第一种方式读取Sheet页

*/

// HSSFSheet sheet = workbook.getSheet("Sheet0");

/**

* 第二种方式读取Sheet页

*/

HSSFSheet sheet = workbook.getSheetAt(0);

int firstRowNum = 0;// 起始行第0行

int lasrRowNum = sheet.getLastRowNum();// 一直读到最后一行

for (int i = 0; i < lasrRowNum; 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();// 注意! 如果Excel 里面的值是String 那么getStringCellValue 如果是其他类型 则需要修改

System.out.print(value + " ");

}

System.out.println();

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

xlsx:

pom:

org.apache.poi

poi-examples

3.9

org.apache.poi

poi-excelant

3.9

org.apache.poi

poi-ooxml

3.9

org.apache.poi

poi-ooxml-schemas

3.9

org.apache.poi

poi-scratchpad

3.9

导出:

public class PoiCreateExcel {

public static void main(String[] args) {

// 创建表头

String[] title = {"id","name","sex"};

//创建Excel工作薄

XSSFWorkbook workbook = new XSSFWorkbook();

//创建一个工作表shheet

Sheet sheet = workbook.createSheet();

//创建第一行

Row row = sheet.createRow(0);

Cell cell = null;

// 插入第一行

for (int i = 0; i < title.length; i++) {

cell = row.createCell(i);

cell.setCellValue(title[i]);

}

// 追加数据

for (int i = 1; i < 10; i++) {// 这里的int 起始是1 也就是第二行开始

Row nexTrow = sheet.createRow(i);

Cell cell2 = nexTrow.createCell(0);

cell2.setCellValue("a"+i);

cell2 = nexTrow.createCell(1);

cell2.setCellValue("user");

cell2 = nexTrow.createCell(2);

cell2.setCellValue("男");

}

// 创建一个文件

File file = new File("d:/poi.xlsx");// 这里可以修改成高版本的

try {

file.createNewFile();

// 将内容内盘外汇赠金活动

FileOutputStream stream = FileUtils.openOutputStream(file);

workbook.write(stream);

stream.close();

} catch (Exception e) {

e.printStackTrace();

}

}

}

导入:

public class PoiReadExcel {

public List readExcels(InputStream is)throws Exception{

List xlsxList = new ArrayList();

try {

if(is ==null){

throw new IOException("文件不正确!");

}

Workbook workbook = WorkbookFactory.create(is);

FormulaEvaluator fe = workbook.getCreationHelper().createFormulaEvaluator();

//获取第一张表

Sheet sheet = workbook.getSheetAt(0);

if(sheet == null){

throw new IOException("传入的excel的第一张表为空!");

}

for(int rowNum = 0;rowNum <= sheet.getLastRowNum(); rowNum++){

Row row = sheet.getRow(rowNum);

if(row != null){

//获得当前行的开始列

int firstCellNum = row.getFirstCellNum();

//获得当前行的列数

int lastCellNum = row.getPhysicalNumberOfCells();

String result = "";

//循环当前行

for(int cellNum = firstCellNum; cellNum < lastCellNum;cellNum++){

Cell cell = row.getCell(cellNum);

double value = 0;

String valueString = cell.getStringCellValue();

if(null!=fe.evaluate(cell)){

value = fe.evaluate(cell).getNumberValue();

}

//result = result + cellNum + ":"+value + "----";

result = result + cellNum + ":"+valueString + "----";

}

System.out.println(result + " ");

}

}

is.close();

} catch (FileNotFoundException e) {

throw new Exception("文件不正确!");

}

return xlsxList;

}

public static void main(String[] args) throws Exception {

InputStream is = new FileInputStream("d:/poi.xlsx");

PoiReadExcel re = new PoiReadExcel();

re.readExcels(is);

}

}

二,JXL

JXL只能对Excel进行操作,属于比较老的框架,它只支持到Excel 95-2000的版本。现在已经停止更新和维护。

pom:

net.sourceforge.jexcelapi

jxl

2.6.10

导出:

public class JxlCreateExcel {

public static void main(String[] args) {

// 首先设置表格第一行 表格头名称 也就是列名

String [] title = {"id","name","sex"};

// 创建Excel文件 存入路径

File file = new File("d:/jxl.xls");

try {

file.createNewFile();

// 创建工作薄

WritableWorkbook workbook = Workbook.createWorkbook(file);

// 创建sheet

WritableSheet sheet = workbook.createSheet("sheet1",0);

// 添加数据

Label label = null;

// 第一行设置列名

for (int i = 0; i < title.length; i++) {

label = new Label(i,0,title[i]);

sheet.addCell(label);

}

// 追加数据 从第二行开始 i从1开始

for (int i = 1; i < 9; i++) {

label = new Label(0,i,"id:"+i);

sheet.addCell(label);

label = new Label(1,i,"user");

sheet.addCell(label);

label = new Label(2,i,"男");

sheet.addCell(label);

}

// 写入 并在最后关闭流

workbook.write();

workbook.close();

} catch (Exception e) {

e.printStackTrace();

}

}

}

导入:

public class JxlReadExcel {

public static void main(String[] args) {

try {

// 创建 Workbook

Workbook workbook = Workbook.getWorkbook(new File("d:/jxl.xls"));

// 获取工作表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) {

e.printStackTrace();

}

}

}

原文地址:https://www.cnblogs.com/benming/p/12558006.html

时间: 2024-10-11 06:46:37

Java实现导入导出Excel文件的方法的相关文章

Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类

Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类 ============================== ?Copyright 蕃薯耀 2017年9月13日 http://www.cnblogs.com/fanshuyao/ 直接上代码: import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.ref

从SQL Server中导入/导出 Excel 的基本方法

/*=================== 导入/导出 Excel 的基本方法 ===================*/ 从Excel文件中,导入数据到SQL数据库中,很简单,直接用下面的语句: /*===================================================================*/ --如果接受数据导入的表已经存在 insert into 表 select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.

(C#)利用Aspose.Cells组件导入导出excel文件

Aspose.Cells组件可以不依赖excel来导入导出excel文件: 导入: [csharp] view plain copy print? public static System.Data.DataTable ReadExcel(String strFileName) { Workbook book = new Workbook(); book.Open(strFileName); Worksheet sheet = book.Worksheets[0]; Cells cells = 

【转】 (C#)利用Aspose.Cells组件导入导出excel文件

Aspose.Cells组件可以不依赖excel来导入导出excel文件: 导入: public static System.Data.DataTable ReadExcel(String strFileName) { Workbook book = new Workbook(); book.Open(strFileName); Worksheet sheet = book.Worksheets[0]; Cells cells = sheet.Cells; return cells.Export

JAVA原始的导出excel文件,快捷通用 方便 还可以导出word文档哦

现在导出excel基本上都是用poi了,当报表格式很负责的时候 开发难度会加大 如果报表有格式有变化 那就更复杂了,先发现一个很老的技术,可以解决格式复杂的报表. 实例代码如下: <%@ page contentType="application/vnd.ms-excel;charset=GBK" %> <%@page import="java.net.URLEncoder"%> <% String filedisplay = &quo

Java中导入导出Excel -- POI技术

一.介绍: 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实际的开发中,很多时候需要实现导入.导出Excel的应用. 目前,比较常用的实现Java导入.导出Excel的技术有两种Jakarta POI和Java Excel 下面我就分别讲解一下如何使用这两个技术实现导入.导出Excel 二.使用Jakarta POI导入.导出Excel Jakarta PO

java中使用poi导入导出excel文件_并自定义日期格式

Apache POI项目的使命是创造和保持java API操纵各种文件格式基于Office Open XML标准(OOXML)和微软的OLE复合文档格式(OLE2)2.总之,你可以读写Excel文件使用java.此外,您可以读取和写入MS Word和PowerPoint文件使用java.Apache POI是java Excel解决方案(Excel 97-2008). 需要jar: poi-3.9-20121203.jar 导出 public static void main(String[]

Java解析,导出Excel文件(.xlsx跟.xls两种格式)&amp;字体修改&amp;单元格合并

做项目时要用到Excel批量导入导出数据,网上搜了以下大部分都是.xls格式Excel文件的教程. 导入.xlsx跟.xls格式的过程差不了多少,就是导出的时候好像有点不同,而且网上也没教程,于是硬着头皮写了一个(并没有看官方Api文档( ̄▽ ̄)"). 首先是导入Jar包,在上传的项目里面已经将需要用到的Jar文件放在lib文件夹里面了,我们只需要在Eclipse里面设置一下: 这里表格信息用Teacher这个类封装: package JavaBean; public class Teacher

命令行模式下 MYSQL导入导出.sql文件的方法

一.MYSQL的命令行模式的设置:桌面->我的电脑->属性->环境变量->新建->PATH=“:path\mysql\bin;”其中path为MYSQL的安装路径.二.简单的介绍一下命令行进入MYSQL的方法:1.C:\>mysql -h hostname -u username -p  .C:\>mysql -h localhost -u root-p按ENTER键,等待然后输入密码.这里hostname为服务器的名称,如localhost,username为M