当前位置: 首页 > 知识库问答 >
问题:

使用apache-poi使用rest assured json响应中的值更新excel

宓毅庵
2023-03-14

我是一个放心的新手,寻求帮助。我编写了从excel表中读取值的代码,并在放心测试中将其作为路径参数传递。这就像预期的那样起作用了。但是,在我从post请求中获得json响应之后,我想用响应中的值更新同一个excel。

excel有称为车次、旅程日期和各种类别代码的列,如头等舱代码、商务舱代码、标准舱代码等,这些列应该显示它们的可用性,等等,如下所示:

最初:

ServiceName  | Date     | A0 | A1 | A2 | ...... 45 columns

9008         |2019-07-28| 0  |  0 |  0 |....... 45 columns

测试后:

ServiceName  | Date     | A0 | A1 | A2 | ...... 45 columns

9008         |2019-07-28| 45 | 23 | 64 |....... 45 columns
@DataProvider(name="logicalAvProvider")
String [][] getLogicalAv() throws IOException
{
    String path = "C:\\Misc\\LogAv.xlsx";
    int rownum = XLUtils.getRowCount(path, "LogAv");
    int colcount=XLUtils.getCellCount(path, "LogAv",rownum );

    String LogAvData[][] = new String[rownum-1][colcount];
    for (int i=1; i <rownum; i++ ) {
        for (int j=0; j<colcount; j++) {
            LogAvData[i-1][j] = XLUtils.getCellData(path, "LogAv", i, j);
            //System.out.println("Data is " +LogAvData[i-1][j]);
        }
    }
    return(LogAvData);
}


@Test(dataProvider="logicalAvProvider")
public void LogicalAvailablity(String ServiceName, String Date) throws IOException {

    Response res=
    given()
    //.log().all()
    .spec(reqSpec)

    .pathParams("service_name", ServiceName, "travel_date", Date)

    .when()
    .get(EndPoints.LOGICAL_AVAILABILTY)
    .then()
    .spec(resSpec)
    .extract().response();
    //.log().body();
[
{
    "od_pair": "7015400:8727100",
    "buckets": [
        {
            "bucket": "C00",
            "original": 2,
            "available": 2
        },
        {
            "bucket": "A01",
            "original": 76,
            "available": 0
        },
        {
            "bucket": "B01",
            "original": 672,
            "available": 477
        },
        {
            "bucket": "B03",
            "original": 578,
            "available": 383
        }
]
}
]

关于使用这些值更新excel工作表的方法的建议。我不期望任何人给我的问题的确切解决办法,但任何建议的方法或任何参考,我可以参考,以实现这将是高度赞赏。

共有1个答案

屈健柏
2023-03-14

从响应中提取所需数据,然后将其写入excel表。使用RESTAssured/JSONPATH,您可以从API响应中提取数据。使用apachePOI您应该能够写入Excel,更多详细信息请参考下面的链接:https://www.codejava.net/coding/how-to-write-excel-files-in-java-using-apache-poi

如果遇到任何问题,请告诉我们

 类似资料:
  • 问题内容: 我正在尝试使用Apache POI更新现有的Excel文件。每次我运行代码时,都会收到如下所示的错误。我也试过FileInputStreamNewFile的东西。 请在下面找到代码。感谢你的帮助。 问题答案: 如果您更换 用 会工作的!

  • 在更新一些值后,我使用Apache POI从现有的XSSFWorkbook创建新的XSSFWorkbook。假设我现有的工作簿中有两个工作表(比方说:工作表A和B)。工作表B有一些来自工作表A的单元格引用。如果我修改工作表A的这些单元格值并将它们保存为新工作簿,工作表B的相应单元格值也应该更新。但事实并非如此。如何以编程方式更新它们?.谢谢。 我的代码:

  • 我试图用Java(Apache POI)更新一个现有excel文件中的空单元格,这是我写的代码,我没有得到任何错误,值也没有改变。 谢谢:)

  • 设置新值后,我需要使用Apache Poi更新自定义属性。 我有为自定义属性设置新值的方法: 但是当我打开文档时,属性值已经过时。我必须手动更新它们。

  • 问题内容: 我在两个不同的项目中使用Apache POI 第一个项目是一个独立的Java应用程序。这里一切都很好。 第二个项目是一个Android项目。我可以很好地访问xlsx的工作簿,但是在计算公式时,它会因异常而崩溃 这是有问题的代码行: Android为什么不接受呢?就像我说的那样:它在独立的Java应用程序上工作正常。 问题答案: Android使用的ICU regex库与Java reg

  • 问题内容: 我正在尝试使用来自ajax html响应的内容更新div。我相信我的语法正确,但是div内容已替换为整个HTML页面响应,而不仅仅是html响应中选择的div。我究竟做错了什么? 问题答案: 您正在设置HTML格式的内容,然后将其替换为本身,这没有多大意义? 我猜你真正在哪里寻找返回的数据,然后用ajax调用中的html用html 更新DOM中的元素: