Java自动化测试(Excel文件解析 9)
时间:2022-07-22
本文章向大家介绍Java自动化测试(Excel文件解析 9),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Excel操作
Maven中添加读取excel的第三方包POI
官网:https://poi.apache.org/ Maven:https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
新建一个测试的excel
exceldemo
将excel放到:src/test/resources
读取excel步骤
- 打开excel
- 获取所有sheet
- 获取指定sheet
- 获取指定row
- 指定的cell单元格
- 获取单元格内容
package com.zhongxin.day10.excel;
import org.apache.poi.ss.usermodel.*;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class ReadDemo {
public static void main(String[] args) {
//读取excel
FileInputStream fis = null;
try {
// 1. 打开excel
fis = new FileInputStream("src/test/resources/demo.xlsx");
// 2. 获取所有sheet
Workbook sheets = WorkbookFactory.create(fis);
// 3. 获取指定sheet
Sheet sheet = sheets.getSheet("Sheet1"); // 通过名称
Sheet sheet1 = sheets.getSheetAt(0); // 通过索引
// 4. 获取指定row
Row row = sheet.getRow(2);
// 5. 指定的cell单元格
Cell cell = row.getCell(1, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK);
// 6. 获取单元格内容
String cellValue = cell.getStringCellValue();
System.out.println(cellValue);
fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
读取excel中全部内容
package com.zhongxin.day10.excel;
import org.apache.poi.ss.usermodel.*;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class ReadDemo2 {
public static void main(String[] args) {
FileInputStream fis = null;
try {
// 1. 打开excel
fis = new FileInputStream("src/test/resources/demo.xlsx");
// 2. 获取所有sheet
Workbook sheets = WorkbookFactory.create(fis);
// 3. 获取指定sheet
Sheet sheet = sheets.getSheet("Sheet1"); // 通过名称
Sheet sheet1 = sheets.getSheetAt(0); // 通过索引
// 4. 获取所有row
// 4.1 增强for
for (Row row : sheet) {
for (Cell cell : row) {
// 强行转换单元格类型
cell.setCellType(CellType.STRING);
String cellValue = cell.getStringCellValue();
System.out.print(cellValue + ",");
}
System.out.println();
}
// 4.2 普通for
int lastRowNum = sheet.getLastRowNum();
for (int i = 0; i <= lastRowNum; i++) {
Row row = sheet.getRow(i);
int lastCellNum = row.getLastCellNum();
for (int j = 0; j < lastCellNum; j++) {
Cell cell = row.getCell(j, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK);
cell.setCellType(CellType.STRING);
String cellValue = cell.getStringCellValue();
System.out.print(cellValue + ",");
}
System.out.println();
}
fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
增强for
for (Row row : sheet) {
for (Cell cell : row) {
// 强行转换单元格类型
cell.setCellType(CellType.STRING);
String cellValue = cell.getStringCellValue();
System.out.print(cellValue + ",");
}
System.out.println();
}
普通for
int lastRowNum = sheet.getLastRowNum();
for (int i = 0; i <= lastRowNum; i++) {
Row row = sheet.getRow(i);
int lastCellNum = row.getLastCellNum();
for (int j = 0; j < lastCellNum; j++) {
Cell cell = row.getCell(j, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK);
cell.setCellType(CellType.STRING);
String cellValue = cell.getStringCellValue();
System.out.print(cellValue + ",");
}
System.out.println();
}
excel 写入
写=创建excel+创建sheet+创建row+创建cell
修改操作=读取+写入
package com.zhongxin.day10.excel;
import org.apache.poi.ss.usermodel.*;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class WriteDemo {
public static void main(String[] args) throws IOException {
// excel 写入
// 1.打开excel
FileInputStream fis = new FileInputStream("src/test/resources/demo.xlsx");
// 2. 获取所有sheet
Workbook sheets = WorkbookFactory.create(fis);
// 3. 获取指定sheet
Sheet sheet = sheets.getSheetAt(0);
// 4. 获取指定row
Row row = sheet.getRow(1);
// 5. 获取指定cell
Cell cell = row.getCell(2, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK);
// 6. 修改值
cell.setCellValue(99);
// 7. 流输出对象
FileOutputStream fos = new FileOutputStream("src/test/resources/demo.xlsx");
// 8. 把java内存中内容写入excel文件中
sheets.write(fos);
// 9. 关流
fis.close();
fos.close();
}
}
XML操作
Xml:扩展性标记语言
特点:可扩展性,在遵循xml语法的前提下支持自定义和修改
xml语法
声明
<?xml version="1.0" encoding="UTF-8"?>
根元素
XML必须包含根元素,它是所有其他元素的父元素
所有元素有开始就有结束
大小写敏感
嵌套使用需要注意嵌套的顺序
<?xml version="1.0" encoding="UTF-8"?>
<sutdent>
<name>张三</name>
<age>18</age>
<score>100</score>
</sutdent>
dom4j
<!-- https://mvnrepository.com/artifact/dom4j/dom4j -->
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
xml读取(了解)
package com.zhongxin.day10.xml;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.List;
public class XmlDemo {
public static void main(String[] args) throws IOException, DocumentException {
// xml读取
// 1. xml读取对象
SAXReader reader = new SAXReader();
FileInputStream fis = new FileInputStream("src/test/resources/Student.xml");
// 2. 整颗dom树
Document document = reader.read(fis);
// 3. 获取root标签
Element rootElement = document.getRootElement();
// 4. 获取root标签下的一级子标签
List<Element> subElements1 = rootElement.elements();
for (Element element : subElements1) {
System.out.println(element.getName() + "====" + element.getData());
// 5. 获取root标签下的二子标签
List<Element> subElement2 = element.elements();
if (subElement2 != null && subElement2.size() > 0) {
for (Element element1 : subElement2) {
System.out.println(element1.getName() + "====" + element1.getData());
}
}
}
fis.close();
}
}
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- thinkphp框架类库扩展操作示例
- Laravel ORM 数据model操作教程
- Laravel框架基础语法与知识点整理【模板变量、输出、include引入子视图等】
- laravel 解决Eloquent ORM的save方法无法插入数据的问题
- laravel框架中控制器的创建和使用方法分析
- php 使用expat方式解析xml文件操作示例
- laravel利用中间件做防非法登录和权限控制示例
- laravel框架中表单请求类型和CSRF防护实例分析
- Yii框架getter与setter方法功能与用法分析
- laravel框架中视图的基本使用方法分析
- laravel5 Eloquent 实现事务方式
- Laravel 微信小程序后端搭建步骤详解
- Laravel使用swoole实现websocket主动消息推送的方法介绍
- Laravel框架Eloquent ORM删除数据操作示例
- PHP常用函数之base64图片上传功能详解