简单的用java操作Excel入门
经常要在程序中输出一些数据,为了方便给别人看,或者利用一下excel的画图功能;又或者需要将excel的数据读入进行处理。本文教你这事如何下手,但并不深入,要深入这里有详细说明
方式一:输出为csv格式的文件
(这个仅能输出数据到excel使用)
由于excel是支持csv格式的数据的,所以仅仅只是简单的使用,把数据输出为csv格式即可,这种方法对任何编程语言来说都一样,就不再这里演示了,仅提供一个csv格式数据的例子(这里还要注意编码的问题,小心乱码):
test.csv
X坐标,Y坐标
1,2.1
2,2.3
利用excel即可打开此文件
方式二:利用Apache的开源项目POI
(这个才是正道,不仅可以操作Excel,还可以操作MF相关的offic全套,包括viso)
由于我只在程序中使用Excel,这里就简单介绍下excel的使用, 并且该教程只是一个入门教程,详细使用请查阅Apache官网的使用说明
首先到Apache的官网下载poi的jar包添加到项目中,
1. 编写一个简单的输出到excel的程序作为演示
public static void main(String[] args) throws Exception {String filePath = "./template.xls";File file = new File(filePath);OutputStream outputStream = null;try {outputStream = new FileOutputStream(file);} catch (FileNotFoundException e) {e.printStackTrace();}HSSFWorkbook workbook = new HSSFWorkbook();HSSFSheet sheet = workbook.createSheet("Sheet1");//创建一个名为Sheet1的表单HSSFRow row = sheet.createRow(0);//创建第一行row.createCell(0).setCellValue("X坐标");//第一行的第一列内容为 X坐标row.createCell(1).setCellValue("Y坐标");//第一行的第二列内容为 Y坐标row.setHeightInPoints(30); // 设置行的高度HSSFRow row1 = sheet.createRow(1);//创建第二行row1.createCell(0).setCellValue("1");//第二行的第一列内容为 1row1.createCell(1).setCellValue("2.1");//第二行的第二列内容为 2.1HSSFRow row2 = sheet.createRow(2);row2.createCell(0).setCellValue("2");row2.createCell(1).setCellValue("2.3");workbook.setActiveSheet(0);try {workbook.write(outputStream);outputStream.close();} catch (IOException e) {e.printStackTrace();}}
效果如下
2. 编写一个简单的读取excel的程序作为演示
public static void main(String[] args) throws Exception {String filePath = "./template.xls";FileInputStream fileInputStream = null;HSSFSheet sheet = null;try {fileInputStream = new FileInputStream(filePath);BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);POIFSFileSystem fileSystem = new POIFSFileSystem(bufferedInputStream);HSSFWorkbook workbook = new HSSFWorkbook(fileSystem);sheet = workbook.getSheet("Sheet1");} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}int lastRowIndex = sheet.getLastRowNum();System.out.println(lastRowIndex);for (int i = 0; i <= lastRowIndex; i++) {HSSFRow row = sheet.getRow(i);//读取一行if (row == null) {break;}short lastCellNum = row.getLastCellNum();for (int j = 0; j < lastCellNum; j++) {String cellValue = row.getCell(j).getStringCellValue();//读取每行中每列System.out.println(cellValue);}}}
运行即可输出excel中的数据。
这里仅仅带大家入门,以免一些同学不知道从哪里下手,稍微详细点中文介绍请看这篇文章;POI作为一个开源项目,不仅仅可以操作Excel,还可以操作Word, PPT总之微软那一套都可以,由于不经常使用,所以要深入使用的请直接查阅Apache官网POI的资料,不要在网上乱找资料了,太浪费时间。
简单的用java操作Excel入门相关推荐
- 简单快速上手JAVA操作Excel
文章目录 前言 一.POI及EasyExcel是什么? 1.Apache POI 2.easyExcel 二.使用步骤 1.Excel基本写操作 2.大数据量的写入 大文件写HSSF 大文件写XSSF ...
- java操作Excel、PDF文件
java操作Excel.PDF文件 下面这些是在开发中用到的一些东西,有的代码贴的不是完整的,只是贴出了关于操作EXCEL的代码: jxl是一个*国人写的java操作excel的工具, 在开源世界中, ...
- java操作excel表
文章分类:Java编程 http://developers.sun.com.cn/blog/functionalca/entry/java读写excel简介 JAVA EXCEL API简介 Java ...
- JAVA操作Excel时文字自适应单元格的宽度设置方法
使用JAVA操作Excel通常都使用JXL,方法很简单网上也有很多的教程,然后往往一些细节性的问题却导致我们这些Programmer苦恼不已.这两天帮一个朋友做一个Excel表格自动生成的小软件,就遇 ...
- Java操作Excel三种方式POI、Hutool、EasyExcel
Java操作Excel三种方式POI.Hutool.EasyExcel 1. Java操作Excel概述 1.1 Excel需求概述 1.2 Excel操作三种方式对比 2. ApachePOIExc ...
- Java 操作excel表格 - JXL(Java excel api)
Java 操作excel表格 Java 操作 Excel 最常用的就是JXL(Java excel api)和POI,用起来挺简单的,不过相应的其功能也并非很强大,够用就行! 首先,下载jxl.jar ...
- java操作excel的工具
jxl是一个韩国人写的java操作excel的工具, 在开源世界中,有两套比较有影响的API可 供使用,一个是POI,一个是jExcelAPI.其中功能相对POI比较弱一点.但jExcelAPI对中文 ...
- Java操作Excel并导出
Java导出Excel表格 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 Java导出Excel表格 前言 一.企业excel项目导出演示 二.使用步骤 1.引入Mave ...
- java操作excel
使用Java操作excel可以使用两种方式: 关于表格导入导出,市面上比较知名的开源就是 Apache 的POI 和 阿里巴巴的 EasyExcel了.EasyExcel 也是对 POI 的改进和封装 ...
- Java 操作excel 插入删除列,插入删除图片
起因:接收到一部分数据存在Excel中,大概有300多个,每一个excel的前两行为空,并且插入了一张图片,第三行可以当做表头. 任务:使用kettle将excel中数据导入到数据库中,但是要删除千两 ...
最新文章
- ios NSLayoutConstraint
- apache php 执行shell,PHP执行普通shell命令流程解析
- angular html清除元素,在Angular js中单击时删除HTML元素
- 2018.09.17 atcoder Digit Sum(数论)
- Prompt | 从CLIP到CoOp,Visual-Language Model新范式
- 输入用户名和密码登入到服务器,却显示指定的网络密码不正确,输入了好几次都是这样,这是怎么回事? 用户名和密码没问题 ,一直用的好好地今天就不行了...
- 【设计模式】解释器模式
- unity透明物体显示问题
- lua学习 第二章数据与标准库
- win10实现宽带转WiFi
- 记 · 迎接寒风 · 独自北上旅行
- 现代密码学的第一次高光时刻
- Android9.0源代码中替换默认静态壁纸
- 对比安卓!鸿蒙OS 2.0流畅度实测:差距到底多大?
- org.hibernate.MappingException:unknown entity:com.lmy.model.User
- 【雷达通信】基于matlab大规模MIMO三维信道【含Matlab源码 2105期】
- 新南威语言班C加,2020年新南威尔士大学语言班要求高不高
- 硒鼓带不带芯片区别_硒鼓芯片的价格为什么相差悬殊?
- 使用 ffmpeg 命令将视频转图片
- 浏览器野史 UserAgent列传(下)
热门文章
- 【计算机网络】1、为什么要学习计算机网络基础
- 华东 1、华东 2、华北 1、华北 2、华南 1 服务器分别都在哪个城市
- Python百日百行代码挑战-day7,游戏模块学习,tkinter
- 解决:unable to start embedded tomcat
- (C++)实现简单分数相加
- c语言静态变量的特点,静态变量有什么特点
- mysql table already_MySQL优化表时提示 Table is already up to date的解决方法
- 文件上传案例(java)
- 开灯问题 算法竞赛 (注释详细)
- 医疗后台管理系统项目