JAVA解析Excel
来源:互联网 发布:二维码生成打印软件 编辑:程序博客网 时间:2024/06/16 09:58
一.Excel解析的几种实现方式
1.JXL(较少使用)
2.POI(常用)
3.FastExcel(基本不用)
二.实例
1.JXL生成导出Excel(先导入jxl的包 )
package com.tiglle.jxl;import java.io.File;import jxl.Workbook;import jxl.write.Label;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;public class JxlTestOut{ public static void main(String[] args) { //创建Excel文件 File file = new File("e:/jxl_excel.xls"); try { //创建工作薄 WritableWorkbook workbook = Workbook.createWorkbook(file); //创建sheet页 WritableSheet sheet = workbook.createSheet("sheet名称", 0); //一格Label代表一格,用列y和行x定位。new Label(列y,行x,"标题0"); Label label0 = new Label(0,0,"标题0"); Label label1 = new Label(1,0,"标题1"); Label label2 = new Label(2,0,"标题2"); sheet.addCell(label0); sheet.addCell(label1); sheet.addCell(label2); //第二行数据 Label label3 = new Label(0,1,"内容0"); Label label4 = new Label(1,1,"内容1"); Label label5 = new Label(2,1,"内容2"); sheet.addCell(label3); sheet.addCell(label4); sheet.addCell(label5); //写入内容 workbook.write(); //关闭流 workbook.close(); } catch (Exception e) { // TODO: handle exception } }}jxl_excel.xls:标题0 标题1 标题2内容0 内容1 内容2
2.JXL解析导入Excel
package com.tiglle.jxl;import java.io.File;import jxl.Cell;import jxl.Sheet;import jxl.Workbook;public class JxlTestIn { public static void main(String[] args) { try { //指定Excel文件 File file = new File("E://jxl_excel.xls"); //创建WorkBook Workbook workbook = Workbook.getWorkbook(file); //获取工作表sheet页(从第0页开始) Sheet sheet0 = workbook.getSheet(0); //获取第一页sheet中的数据 //getCell(y,x); Cell cell00 = sheet0.getCell(0, 0); System.out.println(cell00.getContents()); Cell cell10 = sheet0.getCell(1, 0); System.out.println(cell10.getContents()); //关闭流 workbook.close(); } catch (Exception e) { } }}结果:标题0标题1
3.POI生成导出Excle
package com.tiglle.poi;import java.io.File;import java.io.FileOutputStream;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.ss.usermodel.Cell;public class PoiTestOut { public static void main(String[] args) { //创建Excel工作薄 HSSFWorkbook workbook = new HSSFWorkbook(); //创建一个sheet页 HSSFSheet sheet0 = workbook.createSheet("第一页"); //创建第一行标题行,从0开始 HSSFRow row0 = sheet0.createRow(0); //创建第一行的第一格(第一列) Cell cell00 = row0.createCell(0); //设置y0,x0的内容(y,x) cell00.setCellValue("标题0"); //创建第一行的第二格 Cell cell01 = row0.createCell(1); //设置y0,x1的内容 cell01.setCellValue("标题1"); //创建第一行的第三格 Cell cell02 = row0.createCell(2); //设置y0,x2的内容 cell02.setCellValue("标题2"); //创建第二行的内容行 HSSFRow row1 = sheet0.createRow(1); //第二行第一格 Cell cell10 = row1.createCell(0); //设置y1,x0的内容 cell10.setCellValue("内容0"); //第二行第二格 Cell cell11 = row1.createCell(1); //设置y1,x1的内容 cell11.setCellValue("内容1"); //第二行第一格 Cell cell12 = row1.createCell(2); //设置y1,x2的内容 cell12.setCellValue("内容2"); //创建第二个sheet页.. HSSFSheet sheet1 = workbook.createSheet("第二页"); try { //创建Excel文件,并将内容写入(如果路径包含不存在的文件夹,必须创建,不然包找不到文件异常) File file = new File("E://poi_excel.xls"); file.createNewFile(); //通过文件输出流将内容写入文件 FileOutputStream outStream = new FileOutputStream(file); //将内容写入 workbook.write(outStream); //关闭流 outStream.close(); workbook.close(); } catch (Exception e) { e.printStackTrace(); } }}
4.POI解析Excel
package com.tiglle.poi;import java.io.File;import java.io.FileInputStream;import java.io.InputStream;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;public class PoiTestIn { public static void main(String[] args) { try { //指定一个Excel文件 File file = new File("E://poi_excel.xls"); //创建Excel,读取文件内容 InputStream inputStream = new FileInputStream(file); HSSFWorkbook workbook = new HSSFWorkbook(inputStream); //获取指定sheet页(两种方式) //1.通过sheetName获取 //HSSFSheet sheet = workbook.getSheet("第一页"); //2.通过索引(页数)获取(从0开始) HSSFSheet sheet = workbook.getSheetAt(0); //获取第一行 HSSFRow row0 = sheet.getRow(0); //获取第一行的第一格(y,x) HSSFCell cell00 = row0.getCell(0); //获取内容 String content = cell00.getStringCellValue(); System.out.println(content); //获取第二行 HSSFRow row1 = sheet.getRow(1); //获取第二行的第一格(y,x) HSSFCell cell10 = row1.getCell(0); //获取内容 String content1 = cell10.getStringCellValue(); System.out.println(content1); //获取sheet中最后一行行号 int lastRowNum = sheet.getLastRowNum(); //获取一行最后一格号 int lastCellNum = row1.getLastCellNum(); System.out.println("lastRowNum="+lastRowNum+",lastCellNum="+lastCellNum); //关闭流 workbook.close(); inputStream.close(); } catch (Exception e) { } }}
5.POI生成和解析高版本的Excel(xlsx后缀结尾)
生出导出:
package com.tiglle.poi;import java.io.File;import java.io.FileOutputStream;import org.apache.poi.ss.usermodel.Cell;import org.apache.poi.xssf.usermodel.XSSFRow;import org.apache.poi.xssf.usermodel.XSSFSheet;import org.apache.poi.xssf.usermodel.XSSFWorkbook;/** * 生成高版本你的Excel(xlsx后缀结尾) * 低版本使用的HSSF,高版本使用XSSF * @author Administrator * */public class PoiHeightVersionExcelOut { public static void main(String[] args) { //创建Excel工作薄 XSSFWorkbook workbook = new XSSFWorkbook(); //创建一个sheet页 XSSFSheet sheet0 = workbook.createSheet("第一页"); //创建第一行标题行,从0开始 XSSFRow row0 = sheet0.createRow(0); //创建第一行的第一格(第一列) Cell cell00 = row0.createCell(0); //设置y0,x0的内容(y,x) cell00.setCellValue("标题0"); //创建第一行的第二格 Cell cell01 = row0.createCell(1); //设置y0,x1的内容 cell01.setCellValue("标题1"); //创建第一行的第三格 Cell cell02 = row0.createCell(2); //设置y0,x2的内容 cell02.setCellValue("标题2"); //创建第二行的内容行 XSSFRow row1 = sheet0.createRow(1); //第二行第一格 Cell cell10 = row1.createCell(0); //设置y1,x0的内容 cell10.setCellValue("内容0"); //第二行第二格 Cell cell11 = row1.createCell(1); //设置y1,x1的内容 cell11.setCellValue("内容1"); //第二行第一格 Cell cell12 = row1.createCell(2); //设置y1,x2的内容 cell12.setCellValue("内容2"); //创建第二个sheet页.. XSSFSheet sheet1 = workbook.createSheet("第二页1"); try { //创建Excel文件,并将内容写入(如果路径包含不存在的文件夹,必须创建,不然包找不到文件异常) File file = new File("E://poi_excel1.xlsx"); file.createNewFile(); //通过文件输出流将内容写入文件 FileOutputStream outStream = new FileOutputStream(file); //将内容写入 workbook.write(outStream); //关闭流 outStream.close(); workbook.close(); } catch (Exception e) { e.printStackTrace(); } }}
解析读取
package com.tiglle.poi;import java.io.File;import java.io.FileInputStream;import java.io.InputStream;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;/** * 解析高版本你的Excel(xlsx后缀结尾) * 低版本使用的HSSF,高版本使用XSSF * @author Administrator * */public class PoiHeightVersionExcelIn { public static void main(String[] args) { try { //指定一个Excel文件 File file = new File("E://poi_excel.xlsx"); //创建Excel,读取文件内容 InputStream inputStream = new FileInputStream(file); XSSFWorkbook workbook = new XSSFWorkbook(inputStream); //获取指定sheet页(两种方式) //1.通过sheetName获取 //HSSFSheet sheet = workbook.getSheet("第一页"); //2.通过索引(页数)获取(从0开始) XSSFSheet sheet = workbook.getSheetAt(0); //获取第一行 XSSFRow row0 = sheet.getRow(0); //获取第一行的第一格(y,x) XSSFCell cell00 = row0.getCell(0); //获取内容 String content = cell00.getStringCellValue(); System.out.println(content); //获取第二行 XSSFRow row1 = sheet.getRow(1); //获取第二行的第一格(y,x) XSSFCell cell10 = row1.getCell(0); //获取内容 String content1 = cell10.getStringCellValue(); System.out.println(content1); //获取sheet中最后一行行号 int lastRowNum = sheet.getLastRowNum(); //获取一行最后一格号 int lastCellNum = row1.getLastCellNum(); System.out.println("lastRowNum="+lastRowNum+",lastCellNum="+lastCellNum); //关闭流 workbook.close(); inputStream.close(); } catch (Exception e) { } }}结果:标题0内容0lastRowNum=1,lastCellNum=3
阅读全文
0 0
- java 解析 excel数据excel
- Java解析Excel实例解析
- java解析Excel存储
- java解析excel方法
- java解析excel数据
- java解析excel
- java解析excel文件
- java解析Excel
- Java解析 Excel
- java解析Excel
- java jxl解析excel
- java解析excel
- Java 解析 Excel 文件
- java解析excel
- Java 解析Excel内容
- java poi 解析excel
- java excel 解析
- java 解析excel文件
- 数据结构—堆
- 0827 OpenJ#7219 复杂的整数划分问题
- [kuangbin带你飞]专题一 简单搜索 K
- Linux shell:文本的按行逆序和字符串逆序
- Mysql压力测试工具mysqlslap
- JAVA解析Excel
- 如何利用c++11的新特性编写类成员线程函数并实现同步
- 无脑日常QAQ
- 8、python设计模式之装饰模式
- 基于源码的Faster R-CNN训练总体流程梳理
- sql语句中case when的使用方法
- docker入门
- 实践
- 盒子的真实宽高