[Java 接口自动化框架]-优化篇02(EasyExcel写入不同sheet)

本文介绍了如何在Java接口自动化测试中,使用EasyExcel将不同测试用例的结果写入同一个Excel的不同sheet中,解决了每次测试覆盖之前数据的问题。通过ExcelUtil工具类和ExcelDataBean实体类,实现了在测试完成后一次性将所有数据追加到指定sheet。
摘要由CSDN通过智能技术生成

2021/12/01号记录:

Java 接口自动化框架优化:EasyExcel写入不同sheet

    需求:执行一次testng.xml的所有测试用例的测试结果存入1个Excel,不同的Sheet中。

    发现问题:做Java web接口自动化测试时发现,每个TestCase用例写入excel都会新生成1个新的Excel覆盖之前用例的数据,并不会追加插入数据。

    解决方法:

方式1:想到用之前BufferedWriter写入csv的方式,这种可以做到追加数据,未尝试是否可以追加写入不同的sheet中--->以后有空可以尝试下。

方式2:因Java接口自动化框架中,本次写入Excel用的是EasyExcel,那么就尝试用这种方式写入excel解决此问题:通过ExcelWriter写入不同sheet的方式。

一、通过ExcelWriter写入不同sheet的说明

1、ExcelUtil.java工具类:

    /**
     * 写到不同的sheet
     * @param excelWriter excelWriter
     * @param datalist 写入的数据
     * @param sheetName 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 在EasyExcel中,我们可以使用`write`方法将数据写入指定的sheet中。具体步骤如下: 1. 加载Excel文件 ```java File file = new File("path/to/file.xlsx"); ExcelWriter writer = EasyExcel.write(file).build(); ``` 2. 创建要写入的数据列表 ```java List<MyData> dataList = new ArrayList<>(); // 添加数据到dataList ``` 3. 创建要写入sheet ```java Sheet sheet = new Sheet(1, 0, MyData.class); // 参数1:sheet的序号,从1开始 // 参数2:sheet的表头行数,0表示没有表头 // 参数3:要写入的数据类型 ``` 4. 将数据写入sheet ```java writer.write(dataList, sheet); ``` 5. 关闭ExcelWriter ```java writer.finish(); ``` 完整的示例代码如下: ```java File file = new File("path/to/file.xlsx"); ExcelWriter writer = EasyExcel.write(file).build(); List<MyData> dataList = new ArrayList<>(); Sheet sheet = new Sheet(1, 0, MyData.class); writer.write(dataList, sheet); writer.finish(); ``` 其中,`MyData`是要写入的数据类型,可以根据实际情况进行替换。 ### 回答2: EasyExcel是一个用于操作Excel的Java库。它具有简单易用的特点,可以轻松地读写Excel文件。在EasyExcel中,我们可以通过指定sheet来进行写入操作。 首先,我们需要引入EasyExcel的依赖,比如在Maven项目中可以添加以下依赖: ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.3.0</version> </dependency> ``` 接下来,在代码中使用EasyExcel进行写入操作。假设我们要将数据写入名为"Sheet1"的sheet中,可以按照以下步骤进行: 1. 创建一个Java类,用于存储要写入的数据。假设我们创建了一个名为"DataModel"的类,并在其中定义了要写入的字段。 ```java public class DataModel { private String name; private int age; // getter和setter方法省略 } ``` 2. 在代码中按照以下方式进行写入操作: ```java String sheetName = "Sheet1"; String fileName = "path/to/file.xlsx"; List<DataModel> data = new ArrayList<>(); // 假设我们有一些要写入的数据 data.add(new DataModel("John", 25)); data.add(new DataModel("Alice", 30)); ExcelWriter excelWriter = EasyExcel.write(fileName).build(); WriteSheet writeSheet = EasyExcel.writerSheet(sheetName).build(); excelWriter.write(data, writeSheet); excelWriter.finish(); ``` 在上述代码中,首先我们指定了要写入的Excel文件和Sheet名称。然后创建了一个ExcelWriter对象来进行写入操作,接着创建了一个WriteSheet对象并将其与数据一起传递给ExcelWriter进行写入。 最后,调用`excelWriter.finish()`方法来完成写入操作,将数据写入到指定的Sheet中。完成后,可以在指定的文件路径中找到生成的Excel文件。 以上就是使用EasyExcel写入指定Sheet的方法。通过以上步骤,我们可以轻松地使用EasyExcel来操作Excel文件并实现数据的写入。 ### 回答3: easyexcel是一个Java操作Excel文件的开源框架,通过它可以方便地读取、写入Excel文件。要写入指定的sheet,需要进行以下步骤: 1. 首先,创建一个ExcelWriter对象,用于写入Excel文件的内容。 2. 通过ExcelWriter对象的createSheet方法,创建一个新的sheet。可以指定sheet的名称和位置,也可以用默认值。 3. 使用ExcelWriter对象的write方法,向指定的sheet写入数据。可以通过传入不同类型的参数来写入不同格式的数据,如字符串、数字、日期等。 4. 写入完成后,调用ExcelWriter对象的finish方法,将数据写入到Excel文件中。 5. 最后,关闭ExcelWriter对象,释放资源。 以下是一个示例代码,演示了如何使用easyexcel写入指定sheet: ``` public static void writeToSpecifiedSheet() { // 创建ExcelWriter对象 ExcelWriter writer = EasyExcel.write("output.xlsx").build(); // 创建一个名为"Sheet2"的sheet WriteSheet sheet2 = EasyExcel.writerSheet(1, "Sheet2").build(); // 写入数据到Sheet2 List<List<Object>> data = new ArrayList<>(); data.add(Arrays.asList("姓名", "年龄", "性别")); data.add(Arrays.asList("张三", 20, "男")); data.add(Arrays.asList("李四", 25, "男")); writer.write(data, sheet2); // 完成写入 writer.finish(); } ``` 以上代码创建了一个名为"Sheet2"的sheet,并写入了一些数据。最终会生成一个名为"output.xlsx"的Excel文件,其中包含了新创建的sheet写入的数据。 通过使用easyexcel框架的相关API,可以方便地实现对Excel文件的读写操作,并支持对指定sheet写入
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宁宁可可

您的鼓励是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值