近期处理的数据规模比较大,正好又是统计合并的事情,想着借助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文件相关推荐

  1. java读写excel文件poi_Java利用POI读写Excel文件工具类

    本文实例为大家分享了Java读写Excel文件工具类的具体代码,供大家参考,具体内容如下 package com.test.app.utils; import java.io.File; import ...

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

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

  3. java读写Excel文件、合并单元格

    [转载]http://blog.sina.com.cn/s/blog_694448320100lxbe.html 利用java操作Excel,有个开源的东东-jxl.jar,可以到http://sou ...

  4. java 读取excel 合并单元格_利用java读写Excel文件、合并单元格

    一般的页眉页脚都分为三个部分,左,中,右三部分,利用如下代码可实现插入页眉页脚 java 代码publicstaticvoidsetHeader(WritableSheet dataSheet,Str ...

  5. java 读写 excel 文件

    package wang;import java.io.File; import java.io.FileInputStream; import java.io.InputStream;import ...

  6. Java实现Excel文件读写

    目录 一.简介 二.maven依赖 三.工具类ExcelUtil 四.测试 4.1.EmployeeVo 4.2.写入数据到Excel 4.3.从Excel读取数据 结语 一.简介   HSSFWor ...

  7. 高级知识点:excel4j实现java操作excel文件的读写

    介绍 java操作excel文件最经典的是POI,但是其api 较多,代码量巨大,反复重复 excel4j ap则简洁太多,利用pojo建模,利用注解进行标识@ExcelField(title = & ...

  8. 基于POI的读写Excel文件的工具类

    依赖的jar包: import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStrea ...

  9. c# 中wpfexcel_VS2017下编写C#程序读写Excel文件

    原标题:VS2017下编写C#程序读写Excel文件 前言: 有时候我们需要对Excel文件进行特殊处理,这种情况下写个小程序是很方便的.最近刚开始学C#,正好有同学需要处理个Excel文件,我就写了 ...

最新文章

  1. NeHe OpenGL教程 第二十一课:线的游戏
  2. python os.system关闭log_又到牛市!带你学习一个python强大证券数据分析工具
  3. Spring Batch:多种格式输出编写器
  4. const变量初始化问题
  5. [转]SQL:JOIN用法
  6. 机器学习算法总结之K近邻(KNN)
  7. Response.Redirect和Server.Transfer的区别
  8. 属性篇(3)—If you love css …
  9. 最简单的java代码【java基本语法】
  10. 罪恶装备X出招表[zz]
  11. 写给一个外汇女交易员的信(连载五)
  12. STM32使用OLED移植U8g2库
  13. vagrant springcloud java 镜像:制作详解(带下载地址)
  14. mybatis的常用标签用法总结
  15. 《金融学》黄达版-知识点总结
  16. 用python 将PDF中的表格转化为Excel
  17. Acrobat DC 常用快捷键
  18. 平面变压器的设计(翻译)(2)
  19. 论文阅读—Adaptive Graph Encoder for Attributed Graph Embedding
  20. JavaScript写一个连连看的游戏

热门文章

  1. ap 目标检测算法map_目标检测mAP怎么计算
  2. python软件中文翻译_python 写一个桌面版的翻译软件
  3. ffmpeg基础流程:音频处理
  4. linux开启多少到多少端口命令,Linux端口命令
  5. linux自定义model,关于modelarts自定义镜像使用心得
  6. grub2配置原理分析
  7. linux 只运行一个实例 互斥锁,Linux多线程4-1_互斥量
  8. MySQL Spatial Analysis Functions(空间计算方法)
  9. d3 v4 api interpolate
  10. 计算机网络优化是啥,计算机网络优化是什么意思