java excel导出2007_java操作excel文件,实现批量导出,和导入

一、POI的定义JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI 。jxl 只能操作Excel 95, 97, 2000也即以.xls为后缀的excel。而poi可以操作Excel 95及以后的版本,即可操作后缀为 .xls 和 .xlsx两种格式的excel。POI全称 Poor Obfuscation Implementation,直译为“可怜的模糊实现”,利用POI接口...
摘要由CSDN通过智能技术生成

一、POI的定义

JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI 。jxl 只能操作Excel 95, 97, 2000也即以.xls为后缀的excel。而poi可以操作Excel 95及以后的版本,即可操作后缀为 .xls 和 .xlsx两种格式的excel。

POI全称 Poor Obfuscation Implementation,直译为“可怜的模糊实现”,利用POI接口可以通过JAVA操作Microsoft office 套件工具的读写功能。官网:http://poi.apache.org ,POI支持office的所有版本,首先去官网下载如下界面:

68f724bad5a33d9a9f6bd2ca7369ecb7.png

a130f415d10123a9b11417cce55011c5.png

下载完后,打开“poi-bin-3.15-20160924.tar.gz”获取操作excel需要的jar包,并将这些jar包复制到项目中。对于只操作2003 及以前版本的excel,只需要poi-3.15.jar ,如果需要同时对2007及以后版本进行操作则需要复制

poi-ooxml-3.15.jar

poi-ooxml-schemas-3.15.jar

以及复制在ooxml-lib目录下的xmlbeans-2.6.0.jar(但不知为何,我下的jar文件中没有dom4j.jar)这个文件,还是加上dom4j.jar,防止报错.

二、使用junit进行操作Excel测试

首先明确Excel工作簿对象、工作表对象、行对象、以及单元格对象。

具体代码如下注意要分清楚究竟是2007版本以前,还是2007版本以后(包括2007版本):下面这段代码是2007版本以前的:

这段代码只是将数据写入到Excel文件中创建

public static voidmain(String[] args) throws Exception {/**

* 注意这只是07版本以前的做法对应的excel文件的后缀名为.xls

* 07版本和07版本以后的做法excel文件的后缀名为.xlsx*/

//创建新工作簿

HSSFWorkbook workbook = newHSSFWorkbook();//新建工作表

HSSFSheet sheet = workbook.createSheet("hello");//创建行,行号作为参数传递给createRow()方法,第一行从0开始计算

HSSFRow row = sheet.createRow(0);//创建单元格,row已经确定了行号,列号作为参数传递给createCell(),第一列从0开始计算

HSSFCell cell = row.createCell(2);//设置单元格的值,即C1的值(第一行,第三列)

cell.setCellValue("hello sheet");//输出到磁盘中

FileOutputStream fos = new FileOutputStream(new File("E:\\root\\sheet\\11.xls"));

workbook.write(fos);

workbook.close();

fos.close();

}

结果如下图:

9aca9b4b71318c567a7a6feb8d4c22f9.png

同样也可以对读取Excel文件,得到Excel文件的数据,并将其打印出来,代码如下:

@Testpublic void testReadExcel() throwsException

{//创建输入流

FileInputStream fis = new FileInputStream(new File("E:\\root\\sheet\\11.xls"));//通过构造函数传参

HSSFWorkbook workbook = newHSSFWorkbook(fis);//获取工作表

HSSFSheet sheet = workbook.getSheetAt(0);//获取行,行号作为参数传递给getRow方法,第一行从0开始计算

HSSFRow row = sheet.getRow(0);//获取单元格,row已经确定了行号,列号作为参数传递给getCell,第一列从0开始计算

HSSFCell cell = row.getCell(2);//设置单元格的值,即C1的值(第一行,第三列)

String cellValue =cell.getStringCellValue();

System.out.println("第一行第三列的值是"+cellValue);

workbook.close();

fis.close();

}

结果如下图:

039727d99d9fe3cfdfbc865ed8e16314.png

上面操作的都是07版本以前的Excel文件,即后缀名为.xls,07和07版本以后的Excel文件后缀名为.xlsx相应的工作簿的对象名也改为:

//创建工作簿

XSSFWorkbook workbook = new XSSFWorkboo

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值