Java 读写 Excel

目前主要有两种常用的方式,jxl和POI。因为POI功能更加强大,面对大量数据时操作性能更加优于jxl,因此,在工作中一般使用POI来操作excel。

POI是Apache下的开放源码函数库,POI提供了一系列的api来供java程序员对Microsoft Office格式的文档提供读写功能。

本片中就用

POI模式进行举例:

首先工具类,读写Excel的类,Excelutil1

代码如下,代码基本上都是从网上抄写的,只是调试了一下,让他能使用:

package com.cailian.test.framework.utils;

import java.io.FileInputStream;import java.io.FileOutputStream;

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;import org.apache.poi.ss.usermodel.Cell;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.ss.usermodel.Workbook;import org.apache.poi.ss.usermodel.WorkbookFactory;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;

/** *  * * @author  * @version 2019年5月7日 */public class ExcelUtill1 {

   public static void setExcleFile(String filePath, int rowNumber,int colNumber,int result, String sheetName) throws Exception {        FileInputStream ExcleFile;       System.out.println(333);

        try {           // 实例化Excle文件的FileInputStream 对象;            ExcleFile = new FileInputStream(filePath);            // 实例化Excle文件的XSSFWorkbook 对象;

           XSSFWorkbook ExcelWBook = new XSSFWorkbook(ExcleFile);            /*            * 实例化XSSFSheet 对象,指定ExcelFile中的sheet名称,用于后续对sheet中行和列的操作;            *             */           XSSFSheet ExcelWSheet = ExcelWBook.getSheet(sheetName);           // 通过函数参数指定单元格的行号和列,获取指定单元格的对象;           //Cell = ExcelWSheet.getRow(row).getCell(col);           XSSFRow row = ExcelWSheet.getRow(rowNumber);           XSSFCell col =row.getCell(colNumber);

           /*            * 1.如果单元格的类型为字符串类型,使用getStringCellValue();来获取单元格的内容;            * 2.如果单元格的类型为数字类型,使用getNumberricCellValue();来获取单元格的内容;            * 注意:getNumberricCellValue();返回的值为double类型,转为为字符串类型,必须在           * getNumberricCellValue();前面加上(" ")双引号,用于强制转换为String类型,不加双引号           * 则会抛错;double类型无法转换为String类型的异常;           *             */           String CellData = col.getCellType() == XSSFCell.CELL_TYPE_STRING ? col.getStringCellValue() + ""                  : String.valueOf(Math.round(col.getNumericCellValue()));

                    // 单元格中有内容,则可以直接调用seCellValue方法设定单元格的值             col.setCellValue(result);

          // 实例化写入Excel文件的文件输出流对象          FileOutputStream fileOut = new FileOutputStream(filePath);          // 将内容写入Excel中                ExcelWBook.write(fileOut);          fileOut.flush();          fileOut.close();        } catch (Exception e) {           e.printStackTrace();

        }   }   public static void setExcleFile1(String filePath, int rowNumber,int colNumber,String result, String sheetName) throws Exception {        FileInputStream ExcleFile;       System.out.println(333);

        try {           // 实例化Excle文件的FileInputStream 对象;            ExcleFile = new FileInputStream(filePath);            // 实例化Excle文件的XSSFWorkbook 对象;

            HSSFWorkbook ExcelWBook = new HSSFWorkbook(ExcleFile);            /*            * 实例化XSSFSheet 对象,指定ExcelFile中的sheet名称,用于后续对sheet中行和列的操作;            *             */           HSSFSheet ExcelWSheet = ExcelWBook.getSheetAt(0);           // 通过函数参数指定单元格的行号和列,获取指定单元格的对象;           //Cell = ExcelWSheet.getRow(row).getCell(col);           HSSFRow row = ExcelWSheet.getRow(rowNumber);           HSSFCell col =row.getCell(colNumber);

           /*            * 1.如果单元格的类型为字符串类型,使用getStringCellValue();来获取单元格的内容;            * 2.如果单元格的类型为数字类型,使用getNumberricCellValue();来获取单元格的内容;            * 注意:getNumberricCellValue();返回的值为double类型,转为为字符串类型,必须在           * getNumberricCellValue();前面加上(" ")双引号,用于强制转换为String类型,不加双引号           * 则会抛错;double类型无法转换为String类型的异常;           *             */           String CellData = col.getCellType() == XSSFCell.CELL_TYPE_STRING ? col.getStringCellValue() + ""                  : String.valueOf(Math.round(col.getNumericCellValue()));

                    // 单元格中有内容,则可以直接调用seCellValue方法设定单元格的值             col.setCellValue(result);

          // 实例化写入Excel文件的文件输出流对象          FileOutputStream fileOut = new FileOutputStream(filePath);          // 将内容写入Excel中                ExcelWBook.write(fileOut);          fileOut.flush();          fileOut.close();

        } catch (Exception e) {           e.printStackTrace();

        }

   }

//  测试了可以使用,也可以自己用自己的文件去测试// public static  void main(String[] args){//    try {//       setExcleFile1("D:/cailian_pg/测试脚本/功能测试/pg3.0/src/test/resources/data/ui/d1value/cityDataBeijing.xls",//             2,2,"3","Sheet");//    } catch (Exception e) {//       // TODO Auto-generated catch block//       e.printStackTrace();//    }//    System.out.println(333);// }

   }

第二步使用工具类进行测试:

UI自动化测试时,要把页面上获取的某个值写入Excel中,需要获取这个值后,然后调用写入Excel的方法setExcleFile1就可以了。调用方法时参数依次是:文件名,行数,列数,写入的值,sheet单的名字。

需求是:Excel的每条用例执行后,需要把一个值写入到每一行的固定的列中。比如说是每一行的30列中。

可以方法的行用caseID,列是固定的,文件名是写死的。

如果文件名也要求是变化的,可以用配置文件。下期介绍。。。。。

第三步:运行完成时,发现那个值已经写入文件中了,

原文地址:https://www.cnblogs.com/yqcf/p/11615880.html

时间: 2024-11-08 10:09:05

Java 读写 Excel的相关文章

java读写excel文件

需求:利用Java读写excel文件 利用jexcelapi实现Java读写excel文件的功能 首先下载并安装jexcelapi JExcelApi v2.6.12 (1911kbytes) 解压后把jxl.jar文件添加到Java Build Path中 Java读取excel文件 Java写入excel文件

java读写Excel三种常用的技术

读写Excel三种常用的技术 1.POI 2.JXL 3.FASTEXCEL POI Apache POI是Apache软件基金会的开放源代码函数库,POI提供API给java程序对Microsoft Office格式档案读和写的功能.HSSF是Horrible SpreadSheet Format的缩写,及"讨厌的电子表格格式",通过HSSF,你可以使用纯的java代码来读取,写入,修改Excel文件. 其中它有以下的功能: HSSF-读写Mocrosoft Excel格式档案的功能

Java读写Excel之POI超入门(转)

Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对Microsoft Office格式档案读和写的功能.Apache POI 是创建和维护操作各种符合Office Open XML(OOXML)标准和微软的OLE 2复合文档格式(OLE2)的Java API.用它可以使用Java读取和创建,修改MS Excel文件.而且,还可以使用Java读取和创建MS Word和MSPowerPoint文件.Apache POI 提供J

JExcel入门,JAVA读写Excel文件

(本人下的是jexcelapi_2_6_12.tar.gz,解压后将里面的jxl.jar复制到WEB-INF/lib目录下面即可) Java Excel API的jar包可以通过以下URL获得:(推荐) http://sourceforge.net/projects/jexcelapi/files/jexcelapi/2.6.6/jexcelapi_2_6_6.zip/download (包括所有版本):http://sourceforge.net/projects/jexcelapi/file

去哪网实习总结:java读写excel表格(JavaWeb)

本来是以做数据挖掘的目的进去哪网的,结构却成了系统开发... 不过还是比较认真的做了三个月,老师很认同我的工作态度和成果... 实习马上就要结束了,总结一下几点之前没有注意过的变成习惯和问题,分享给大家. 同时打个广告:去哪网内审部招JavaWeb开发实习生,时间非常自由,每周一天.周六周日甚至都可以,时间充裕的小伙伴给我留言啊,挣个零花钱,还能长点经验....(保研的.想工作的大四狗最合适不过了...) 需哟的包(java操作excel包 jxl.jar):http://download.cs

Java读写Excel文件中数据的简便方法

Java开发项目中经常会碰到处理Excel文件中数据的情况,这里通过一个例子来看一下实现方法:从Excel文件orders.xls中读取订单信息,从中找出2010年1月1日(含)之后,并且SELLERID等于18的订单.找到的数据写入order_result.xls文件. Excel文件orders.xls的内容如下: ORDERID CLIENT SELLERID AMOUNT ORDERDATE 1 UJRNP 17 392 2008/11/2 15:28 2 SJCH 6 4802 200

Java读写excel

先下载JExcelapi的jar包. 读取的文件主要分两类: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 ch

java读写excel(POI,支持xls和xlsx两种格式)

这应该是一个比较全的示例了,更加复杂的功能可以在此基础上扩展.此示例基于apache的POI类库,相关jar包就不列举了.这个类库很通用,网上很好找. 1.不包含单元格合并的写excel /** * excel导出到输出流 * 谁调用谁负责关闭输出流 * @param os 输出流 * @param excelExtName excel文件的扩展名,支持xls和xlsx,不带点号 * @param data * @throws IOException */ public static void

java读写excel之POI篇—002

poi创建excel文件 创建后缀为 .xls excel文件     @Test     public void testCreateWorkbook_xls() {         HSSFWorkbook hssfWorkbook = new HSSFWorkbook();         //添加Worksheet(不添加sheet时生成的xls文件打开时会报错)         HSSFSheet sheetOne = hssfWorkbook.createSheet();