Java 实现操作 excel

使用 POI

环境搭建

创建一个 maven 工程,pom.xml 中导入以下依赖:

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.7.RELEASE</version>
</parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- 处理 03版 .xls --><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.9</version></dependency><!-- 处理 07版 .xlsx --><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.9</version></dependency><!-- junit --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency>
</dependencies>

Excel03 版本的导出

03版本的导出较快,但是最多只能写65536行。

public class ExcelWrite {String PATH = "C:\\Users\\Administrator\\Desktop\\";@Testpublic void write03() throws Exception {//创建工作簿Workbook workbook = new HSSFWorkbook();//创建工作表Sheet sheet = workbook.createSheet("统计表");//创建第一行Row row0 = sheet.createRow(0);//在第一行创建两个单元格子Cell cell00 = row0.createCell(0);cell00.setCellValue("姓名");Cell cell01 = row0.createCell(1);cell01.setCellValue("性别");//创建第二行Row row1 = sheet.createRow(1);//在第二行创建两个单元格子Cell cell10 = row1.createCell(0);cell10.setCellValue("sjh");Cell cell11 = row1.createCell(1);cell11.setCellValue("male");//生成一张表FileOutputStream fos = new FileOutputStream(PATH + "03.xls");workbook.write(fos);//释放资源fos.close();System.out.println("excel 生成完毕");}
}

执行该测试方法,在桌面生成了一个 03.xls


Excel07 版本的导出

只是把 Workbook 接口的实现类由 HSSFWorkbook 换成了 XSSFWorkbook,以及文件结尾从 .xls换成了 .xlsx,其余不变。

07 版本的导出较慢,但能写更多的行,如果希望提升速度,可以使用SXSSFWorkbook加强版实现类,但是在使用完成后要调用 dispose() 方法清除临时的缓冲文件。

@Test
public void write07() throws Exception {//创建工作簿Workbook workbook = new XSSFWorkbook();//创建工作表Sheet sheet = workbook.createSheet("统计表");//创建第一行Row row0 = sheet.createRow(0);//在第一行创建两个单元格子Cell cell00 = row0.createCell(0);cell00.setCellValue("姓名");Cell cell01 = row0.createCell(1);cell01.setCellValue("性别");//创建第二行Row row1 = sheet.createRow(1);//在第二行创建两个单元格子Cell cell10 = row1.createCell(0);cell10.setCellValue("sjh");Cell cell11 = row1.createCell(1);cell11.setCellValue("male");//生成一张表FileOutputStream fos = new FileOutputStream(PATH + "07.xlsx");workbook.write(fos);//释放资源fos.close();System.out.println("excel 生成完毕");
}

执行该测试方法,在桌面生成了一个 07.xlsx


Excel03 版本的导入

07 版本的导入也一样,更换实现类即可。

创建一个 Controller:

@Controller
@RequestMapping("/excel")
public class ExcelRead {String PATH = "C:\\Users\\Administrator\\Desktop\\";@RequestMapping("/read03")public void read03(HttpServletResponse response) throws Exception {//设置输出编码response.setContentType("text/html;charset=UTF-8");PrintWriter writer = response.getWriter();writer.print("开始解析 excel 文件...<br/>");writer.print("---------------------<br/>");//获取输入流并创建工作簿FileInputStream fis = new FileInputStream(PATH + "03.xls");Workbook workbook = new HSSFWorkbook(fis);//获取表Sheet sheet = workbook.getSheetAt(0);//获取总共的行数int rowNum = sheet.getLastRowNum();for (int r = 0; r <= rowNum; r++) {Row row = sheet.getRow(r);//获取行对象int cellNum = row.getLastCellNum();//获取总共列数for (int c = 0; c < cellNum; c++) {Cell cell = row.getCell(c);//获取单元格writer.print(cell.getStringCellValue()+" ");}writer.print("<br/>");;//换行}//关闭流fis.close();writer.println("---------------------<br/>");writer.println("解析 excel 文件完毕<br/>");}}

创建一个启动类:

@SpringBootApplication
public class MyApplication {public static void main(String[] args) {SpringApplication.run(MyApplication.class,args);}
}

启动 Spring Boot,访问对应 url,成功解析桌面的 03.xls 文件 :


Java操作Excel并显示到网页相关推荐

  1. java操作Excel、PDF文件

    java操作Excel.PDF文件 下面这些是在开发中用到的一些东西,有的代码贴的不是完整的,只是贴出了关于操作EXCEL的代码: jxl是一个*国人写的java操作excel的工具, 在开源世界中, ...

  2. java操作excel表

    文章分类:Java编程 http://developers.sun.com.cn/blog/functionalca/entry/java读写excel简介 JAVA EXCEL API简介 Java ...

  3. JAVA操作Excel时文字自适应单元格的宽度设置方法

    使用JAVA操作Excel通常都使用JXL,方法很简单网上也有很多的教程,然后往往一些细节性的问题却导致我们这些Programmer苦恼不已.这两天帮一个朋友做一个Excel表格自动生成的小软件,就遇 ...

  4. Java 操作excel表格 - JXL(Java excel api)

    Java 操作excel表格 Java 操作 Excel 最常用的就是JXL(Java excel api)和POI,用起来挺简单的,不过相应的其功能也并非很强大,够用就行! 首先,下载jxl.jar ...

  5. java操作excel的工具

    jxl是一个韩国人写的java操作excel的工具, 在开源世界中,有两套比较有影响的API可 供使用,一个是POI,一个是jExcelAPI.其中功能相对POI比较弱一点.但jExcelAPI对中文 ...

  6. Java操作Excel并导出

    Java导出Excel表格 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 Java导出Excel表格 前言 一.企业excel项目导出演示 二.使用步骤 1.引入Mave ...

  7. Java 操作excel 插入删除列,插入删除图片

    起因:接收到一部分数据存在Excel中,大概有300多个,每一个excel的前两行为空,并且插入了一张图片,第三行可以当做表头. 任务:使用kettle将excel中数据导入到数据库中,但是要删除千两 ...

  8. Java操作Excel之POI:java读写excel文件以及打印设置

    Java操作Excel之POI:java读写excel文件以及打印设置 POI的jar包下载地址:http://poi.apache.org/download.html 注意:项目中导入poi 4.0 ...

  9. java操作Excel有两种方式 方式1:jxl操作Excel jxl的API

    java操作Excel有两种方式 方式1:jxl操作Excel 方式2:poi操作Excel 下面介绍jxl API: 使用Windows操作系统的朋友对Excel(电子表格)一定不会陌生,但是要使用 ...

最新文章

  1. [Android1.5]Android2.0版本以下Activity切换动画效果
  2. spring boot多数据源配置(mysql,redis,mongodb)实战
  3. 单日2000W+订单,如何忙中不错?美团外卖业务异常检测实践详解
  4. python自动化工具开发_初识TPOT:一个基于Python的自动化机器学习开发工具
  5. 再次学习mysql优化
  6. 前端学习(3000):vue+element今日头条管理--封装请求模块
  7. 【BZOJ1815BZOJ1488】有色图图的同构,Polya计数+暴力
  8. select下拉框怎么去掉空白_行业词库:网站长尾关键词优化怎么做呢?
  9. WinForm后台任务(定时任务)传递消息给主窗体并更新主窗体文本框内容
  10. js解压gzip(解决RangeError: Maximum call stack size exceeded)
  11. Ins图片爬取(基于python,selenium)
  12. 爬取豆瓣电影排行榜top250最新教程!经典爬虫案例
  13. python 聚宽 对股票名称或代码进行查询
  14. 亿推推微分销-最具口碑的微信分销公众平台,欢迎各位商家入驻!
  15. 数据科学库(HM)(Day2)——matplotlib常用统计图
  16. 深度之眼Paper带读笔记GNN.06.GAT
  17. HTMLCSS选择器
  18. 程序员12年工作经验跳槽,经验和总结
  19. “我月薪3千月入5万”:不是你不会赚钱,而是你赚钱的方式有问题
  20. 农业绿色有机蔬菜PPT模板(工作总结、汇报).pptx

热门文章

  1. ACFLY开源飞控的介绍
  2. 核函数和核矩阵【转】
  3. Inception神经网络
  4. direction: rtl;
  5. excel之工作表工作簿保护暴力撤销
  6. MIGO BAPI_GOODSMVT_CREATE创建及增强
  7. 不在同一局域网的两台电脑如何通过ssh连接
  8. 企业网络中的防火墙旁挂实例
  9. TransactionScope使用(二)——msdtc不可用
  10. 【汇编语言】快速理解什么是寻址,什么是寻址方式