经常要在程序中输出一些数据,为了方便给别人看,或者利用一下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入门相关推荐

  1. 简单快速上手JAVA操作Excel

    文章目录 前言 一.POI及EasyExcel是什么? 1.Apache POI 2.easyExcel 二.使用步骤 1.Excel基本写操作 2.大数据量的写入 大文件写HSSF 大文件写XSSF ...

  2. java操作Excel、PDF文件

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

  3. java操作excel表

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

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

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

  5. Java操作Excel三种方式POI、Hutool、EasyExcel

    Java操作Excel三种方式POI.Hutool.EasyExcel 1. Java操作Excel概述 1.1 Excel需求概述 1.2 Excel操作三种方式对比 2. ApachePOIExc ...

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

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

  7. java操作excel的工具

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

  8. Java操作Excel并导出

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

  9. java操作excel

    使用Java操作excel可以使用两种方式: 关于表格导入导出,市面上比较知名的开源就是 Apache 的POI 和 阿里巴巴的 EasyExcel了.EasyExcel 也是对 POI 的改进和封装 ...

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

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

最新文章

  1. ios NSLayoutConstraint
  2. apache php 执行shell,PHP执行普通shell命令流程解析
  3. angular html清除元素,在Angular js中单击时删除HTML元素
  4. 2018.09.17 atcoder Digit Sum(数论)
  5. Prompt | 从CLIP到CoOp,Visual-Language Model新范式
  6. 输入用户名和密码登入到服务器,却显示指定的网络密码不正确,输入了好几次都是这样,这是怎么回事? 用户名和密码没问题 ,一直用的好好地今天就不行了...
  7. 【设计模式】解释器模式
  8. unity透明物体显示问题
  9. lua学习 第二章数据与标准库
  10. win10实现宽带转WiFi
  11. 记 · 迎接寒风 · 独自北上旅行
  12. 现代密码学的第一次高光时刻
  13. Android9.0源代码中替换默认静态壁纸
  14. 对比安卓!鸿蒙OS 2.0流畅度实测:差距到底多大?
  15. org.hibernate.MappingException:unknown entity:com.lmy.model.User
  16. 【雷达通信】基于matlab大规模MIMO三维信道【含Matlab源码 2105期】
  17. 新南威语言班C加,2020年新南威尔士大学语言班要求高不高
  18. 硒鼓带不带芯片区别_硒鼓芯片的价格为什么相差悬殊?
  19. 使用 ffmpeg 命令将视频转图片
  20. 浏览器野史 UserAgent列传(下)

热门文章

  1. 【计算机网络】1、为什么要学习计算机网络基础
  2. 华东 1、华东 2、华北 1、华北 2、华南 1 服务器分别都在哪个城市
  3. Python百日百行代码挑战-day7,游戏模块学习,tkinter
  4. 解决:unable to start embedded tomcat
  5. (C++)实现简单分数相加
  6. c语言静态变量的特点,静态变量有什么特点
  7. mysql table already_MySQL优化表时提示 Table is already up to date的解决方法
  8. 文件上传案例(java)
  9. 开灯问题 算法竞赛 (注释详细)
  10. 医疗后台管理系统项目