java读写excel文件
近期处理的数据规模比较大,正好又是统计合并的事情,想着借助excel就可以完成了,然后就了解了下java读取excel的事情。
读取的文件主要分两类:xls文件、xlsx文件。xls文件的相关操作用的是jxl.jar包,只要将这个包导入即可。xlsx文件的相关操作是利用apache的poi包。
一、xls文件(一个jar包:jxl.jar)
1)创建
package jexcel; import java.io.*; import jxl.*; import jxl.write.*; /** * @author Ken * * To change the template for this generated type comment go to * Window>Preferences>Java>Code Generation>Code and Comments */ public class CreateXLS { public static void main(String[] args) { try { //open file. WritableWorkbook book = Workbook.createWorkbook(new File("d:/Test.xls")); //create Sheet named "Sheet_1". 0 means this is 1st page. WritableSheet sheet = book.createSheet("Sheet_1", 0); //define cell column and row in Label Constructor, and cell content write "test". //cell is 1st-Column,1st-Row. value is "test". Label label = new Label(0, 0, "test"); //add defined cell above to sheet instance. sheet.addCell(label); //create cell using add numeric. WARN:necessarily use integrated package-path, otherwise will be throws path-error. //cell is 2nd-Column, 1st-Row. value is 789.123. jxl.write.Number number = new jxl.write.Number(1, 0, 789.123); //add defined cell above to sheet instance. sheet.addCell(number); //add defined all cell above to case. book.write(); //close file case. book.close(); } catch (Exception e) { e.printStackTrace(); } } }
2)读取
package jexcel; import java.io.*; import jxl.*; /** * @author Ken * * To change the template for this generated type comment go to * Window>Preferences>Java>Code Generation>Code and Comments */ public class ReadXLS { public static void main(String[] args) { try { Workbook book = Workbook.getWorkbook(new File("e:/pos/rule.xls")); //get a Sheet object. Sheet sheet = book.getSheet(0); //get 1st-Column,1st-Row content. // Cell cell = sheet.getCell(1, 2); //先是列序号,然后是行序号,都是从0开始算起Cell[] cell=sheet.getColumn(0);for(int i=0;i<cell.length;i++){String result = cell[i].getContents(); System.out.println(result); }book.close(); } catch (Exception e) { e.printStackTrace(); } } }
3)修改
package jexcel;import java.io.*; import jxl.*; import jxl.write.*; /** * @author Ken * * To change the template for this generated type comment go to * Window>Preferences>Java>Code Generation>Code and Comments */ public class UpdateXLS { public static void main(String[] args) { try { //get file. Workbook wb = Workbook.getWorkbook(new File("d:/Test.xls")); //open a copy file(new file), then write content with same content with Test.xls. WritableWorkbook book = Workbook.createWorkbook(new File("d:/Test.xls"), wb); //add a Sheet. WritableSheet sheet = book.createSheet("Sheet_2", 1); sheet.addCell(new Label(0, 0, "test2")); book.write(); book.close(); } catch (Exception e) { e.printStackTrace(); } } }
二、xlsx文件(五个jar包:poi-3.8-20120326.jar; poi-ooxml-3.8-20120326.jar; poi-ooxml-schemas-3.8-20120326.jar; xmlbeans-2.3.0.jar; dom4j-1.6.1.jar)
import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.sql.Date; import java.text.SimpleDateFormat; import java.util.TimeZone; import java.util.logging.Logger;import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook;public class xlsx {public static void main(String[] args) {// TODO Auto-generated method stubpoiExcel("e:/pos/rules.xlsx");}private static void poiExcel(String saveName){ try{ String realPath =saveName; File fileDes = new File(realPath); InputStream str = new FileInputStream(fileDes); XSSFWorkbook xwb = new XSSFWorkbook(str); //利用poi读取excel文件流 XSSFSheet st = xwb.getSheetAt(0); //读取sheet的第一个工作表 int rows=st.getLastRowNum();//总行数 int cols;//总列数 //log.info("========行========"+rows); for(int i=0;i<rows;i++){ XSSFRow row=st.getRow(i);//读取某一行数据 if(row!=null){ //获取行中所有列数据 cols=row.getLastCellNum(); //log.info("========行========"+rows+"=====列========"+cols); for(int j=0;j<cols;j++){ XSSFCell cell=row.getCell(j); if(cell==null){ System.out.print(" "); }else{ //判断单元格的数据类型 switch (cell.getCellType()) { case XSSFCell.CELL_TYPE_NUMERIC: // 数字 System.out.print(cell.getNumericCellValue() + " "); break; case XSSFCell.CELL_TYPE_STRING: // 字符串 System.out.print(cell.getStringCellValue() + " "); break; case XSSFCell.CELL_TYPE_BOOLEAN: // Boolean System.out.println(cell.getBooleanCellValue() + " "); break; case XSSFCell.CELL_TYPE_FORMULA: // 公式 System.out.print(cell.getCellFormula() + " "); break; case XSSFCell.CELL_TYPE_BLANK: // 空值 System.out.println(""); break; case XSSFCell.CELL_TYPE_ERROR: // 故障 System.out.println("故障"); break; default: System.out.print("未知类型 "); break; } } } } } }catch(IOException e){ e.printStackTrace(); } } }
代码全是网上贴来的,大家一起分享。。
想把jar包也贴上来的,但是不知道是不支持还是我自己摸索不出来,反正最后是没贴出来。。。
转载于:https://www.cnblogs.com/zidiancao/p/3578642.html
java读写excel文件相关推荐
- java读写excel文件poi_Java利用POI读写Excel文件工具类
本文实例为大家分享了Java读写Excel文件工具类的具体代码,供大家参考,具体内容如下 package com.test.app.utils; import java.io.File; import ...
- Java操作Excel之POI:java读写excel文件以及打印设置
Java操作Excel之POI:java读写excel文件以及打印设置 POI的jar包下载地址:http://poi.apache.org/download.html 注意:项目中导入poi 4.0 ...
- java读写Excel文件、合并单元格
[转载]http://blog.sina.com.cn/s/blog_694448320100lxbe.html 利用java操作Excel,有个开源的东东-jxl.jar,可以到http://sou ...
- java 读取excel 合并单元格_利用java读写Excel文件、合并单元格
一般的页眉页脚都分为三个部分,左,中,右三部分,利用如下代码可实现插入页眉页脚 java 代码publicstaticvoidsetHeader(WritableSheet dataSheet,Str ...
- java 读写 excel 文件
package wang;import java.io.File; import java.io.FileInputStream; import java.io.InputStream;import ...
- Java实现Excel文件读写
目录 一.简介 二.maven依赖 三.工具类ExcelUtil 四.测试 4.1.EmployeeVo 4.2.写入数据到Excel 4.3.从Excel读取数据 结语 一.简介 HSSFWor ...
- 高级知识点:excel4j实现java操作excel文件的读写
介绍 java操作excel文件最经典的是POI,但是其api 较多,代码量巨大,反复重复 excel4j ap则简洁太多,利用pojo建模,利用注解进行标识@ExcelField(title = & ...
- 基于POI的读写Excel文件的工具类
依赖的jar包: import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStrea ...
- c# 中wpfexcel_VS2017下编写C#程序读写Excel文件
原标题:VS2017下编写C#程序读写Excel文件 前言: 有时候我们需要对Excel文件进行特殊处理,这种情况下写个小程序是很方便的.最近刚开始学C#,正好有同学需要处理个Excel文件,我就写了 ...
最新文章
- NeHe OpenGL教程 第二十一课:线的游戏
- python os.system关闭log_又到牛市!带你学习一个python强大证券数据分析工具
- Spring Batch:多种格式输出编写器
- const变量初始化问题
- [转]SQL:JOIN用法
- 机器学习算法总结之K近邻(KNN)
- Response.Redirect和Server.Transfer的区别
- 属性篇(3)—If you love css …
- 最简单的java代码【java基本语法】
- 罪恶装备X出招表[zz]
- 写给一个外汇女交易员的信(连载五)
- STM32使用OLED移植U8g2库
- vagrant springcloud java 镜像:制作详解(带下载地址)
- mybatis的常用标签用法总结
- 《金融学》黄达版-知识点总结
- 用python 将PDF中的表格转化为Excel
- Acrobat DC 常用快捷键
- 平面变压器的设计(翻译)(2)
- 论文阅读—Adaptive Graph Encoder for Attributed Graph Embedding
- JavaScript写一个连连看的游戏
热门文章
- ap 目标检测算法map_目标检测mAP怎么计算
- python软件中文翻译_python 写一个桌面版的翻译软件
- ffmpeg基础流程:音频处理
- linux开启多少到多少端口命令,Linux端口命令
- linux自定义model,关于modelarts自定义镜像使用心得
- grub2配置原理分析
- linux 只运行一个实例 互斥锁,Linux多线程4-1_互斥量
- MySQL Spatial Analysis Functions(空间计算方法)
- d3 v4 api interpolate
- 计算机网络优化是啥,计算机网络优化是什么意思