Java如何实现文件批量导入导出(兼容xls,xlsx)

# 介绍

 

java实现文件的导入导出数据库,目前在大部分系统中是比较常见的功能了,今天写个小demo来理解其原理,没接触过的同学也可以看看参考下。

 

目前我所接触过的导入导出技术主要有POI和iReport,poi主要作为一些数据批量导入数据库,iReport做报表导出。另外还有jxl类似poi的方式,不过貌似很久没跟新了,2007之后的office好像也不支持,这里就不说了。

 

# POI使用详解

 

1 什么是Apache POI?

 

Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。

 

2 POI的jar包导入

 

本次讲解使用maven工程,jar包版本使用poi-3.14和poi-ooxml-3.14。目前最新的版本是3.16。因为3.15以后相关api有更新,部分操作可能不一样,大家注意下。

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
<!-- poi的包 3.15版本后单元格类型获取方式有调整 -->        <dependency>            <groupId>org.apache.poi</groupId>            <artifactId>poi</artifactId>            <version>3.14</version>        </dependency>        <dependency>            <groupId>org.apache.poi</groupId>            <artifactId>poi-ooxml</artifactId>            <version>3.14</version>        </dependency>
 

3 POI的API讲解

 

3.1 结构

HSSF - 提供读写Microsoft Excel格式档案的功能。
XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。
HWPF - 提供读写Microsoft Word格式档案的功能。
HSLF - 提供读写Microsoft PowerPoint格式档案的功能。
HDGF - 提供读写Microsoft Visio格式档案的功能。

 

3.2 对象

 

本文主要介绍HSSF和XSSF两种组件,简单的讲HSSF用来操作Office 2007版本前excel.xls文件,XSSF用来操作Office 2007版本后的excel.xlsx文件,注意二者的后缀是不一样的。

 

HSSF在org.apache.poi.hssf.usermodel包中。它实现了Workbook 接口,用于Excel文件中的.xls格式

 

常用组件:

HSSFWorkbook : excel的文档对象
HSSFSheet : excel的表单
HSSFRow : excel的行
HSSFCell : excel的格子单元
HSSFFont : excel字体
HSSFDataFormat: 日期格式
HSSFHeader : sheet头
HSSFFooter : sheet尾(只有打印的时候才能看到效果)

样式:

HSSFCellStyle : cell样式

辅助操作包括:

HSSFDateUtil : 日期
HSSFPrintSetup : 打印
HSSFErrorConstants : 错误信息表

XSSF在org.apache.xssf.usemodel包,并实现Workbook接口,用于Excel文件中的.xlsx格式

 

常用组件:

XSSFWorkbook : excel的文档对象
XSSFSheet: excel的表单
XSSFRow: excel的行
XSSFCell: excel的格子单元
XSSFFont: excel字体
XSSFDataFormat : 日期格式

和HSSF类似;

 

3.3 两个组件共同的字段类型描述

 

其实两个组件就是针对excel的两种格式,大部分的操作都是相同的。

 

3.4 操作步骤

 

以HSSF为例,XSSF操作相同。

 

首先,理解一下一个Excel的文件的组织形式,一个Excel文件对应于一个workbook(HSSFWorkbook),一个workbook可以有多个sheet(HSSFSheet)组成,一个sheet是由多个row(HSSFRow)组成,一个row是由多个cell(HSSFCell)组成。关注公众号Java面试那些事儿,回复关键字面试,获取最新的面试资料。

 

1、用HSSFWorkbook打开或者创建“Excel文件对象”

2、用HSSFWorkbook对象返回或者创建Sheet对象

3、用Sheet对象返回行对象,用行对象得到Cell对象

4、对Cell对象读写。

 

# 代码操作

 

1 效果图

 

惯例,贴代码前先看效果图

 

Excel文件两种格式各一个:

 

 

代码结构:

 

 

导入后:(我导入了两遍,没做校验)

 

 

导出效果:

 

 

2 代码详解

 

这里我以Spring+SpringMVC+Mybatis为基础

 

Controller:

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现Java中Excel批量导入导出所选表格数据,您可以使用以下步骤: 1. 首先,您需要使用Java中的Apache POI库来处理Excel文件。您可以在Maven项目中添加以下依赖项,以便在项目中使用POI: ``` <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.2</version> </dependency> ``` 2. 接下来,您需要编写代码来读取和写入Excel文件。以下是读取Excel文件的示例代码: ``` FileInputStream fis = new FileInputStream(new File("path/to/excel/file.xlsx")); Workbook workbook = new XSSFWorkbook(fis); Sheet sheet = workbook.getSheetAt(0); Iterator<Row> rowIterator = sheet.iterator(); while (rowIterator.hasNext()) { Row row = rowIterator.next(); Iterator<Cell> cellIterator = row.cellIterator(); while (cellIterator.hasNext()) { Cell cell = cellIterator.next(); // 处理单元格数据 } } workbook.close(); fis.close(); ``` 3. 对于写入Excel文件,您可以使用以下示例代码: ``` FileOutputStream fos = new FileOutputStream(new File("path/to/excel/file.xlsx")); Workbook workbook = new XSSFWorkbook(); Sheet sheet = workbook.createSheet("Sheet1"); Row row = sheet.createRow(0); Cell cell = row.createCell(0); cell.setCellValue("Hello World!"); workbook.write(fos); workbook.close(); fos.close(); ``` 4. 最后,您需要添加逻辑来选择要读取或写入的Excel表格数据。您可以使用Java中的JFileChooser类来打开文件选择器窗口,以便用户选择要处理的Excel文件。然后,您可以使用POI库中的方法来处理所选表格数据。 希望这些步骤可以帮助您实现Java中Excel批量导入导出所选表格数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值