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

如何使用apache poi和selenium webdriver在excel文件中写入使用列表和迭代器获得的值

左翰海
2023-03-14

我需要使用selenium webdriver使用list和Iterator存储一个从网页中获得的值列表,我想将这些值存储/写入网站的excel表单链接:https://www.zigwheels.com/used-car我获得了一个流行车型下的值列表,我需要使用apache poi将其存储在excel表单中

编码从这里开始:WebElement li=driver.findElement(by.xpath(“//SPAN[text()='品牌和模型']//parent::div//followingsibling::div//child::div[4]/ul”));

    List<WebElement> alloptions=li.findElements(By.tagName("li"));   
    Iterator<WebElement> itr=alloptions.iterator();
    while(itr.hasNext()) {
        WebElement lii=itr.next();
        String list=lii.getText();
        System.out.println(list);

共有1个答案

乌学博
2023-03-14

先创建文件,再创建工作表,然后创建行,然后在行中填充单元格:

public void CreateNew_Make_BeckupFile() throws IOException
    {
String filePath = "filepath.xls";
       
        File f = new File(filePath); 
        if (!(f.exists() && f.isFile())) 
        {
                
            Workbook workbook = new XSSFWorkbook(); // new HSSFWorkbook() for generating `.xls` file

            /*
             * CreationHelper helps us create instances of various things like DataFormat,
             * Hyperlink, RichTextString etc, in a format (HSSF, XSSF) independent way
             */
            CreationHelper createHelper = workbook.getCreationHelper();

            for (int p = 0; p < listaTimova.size(); p++) {
                // Create a Sheet
                // Sheet sheet = workbook.createSheet("Employee");
                SheetCreation (workbook, p);
            }
            // Write the output to a file
            FileOutputStream outputStream = new FileOutputStream(filePath);
            workbook.write(outputStream);
            // Closing the workbook
            workbook.close();
            outputStream.close();       
        } 

 public void SheetCreation (Workbook workbook, int teamNumber)
        {
            CreationHelper createHelper = workbook.getCreationHelper();
            
            Sheet sheet = workbook.createSheet("Sheet Name");
            
            // Create a Font for styling header cells
            Font headerFont = workbook.createFont();
            headerFont.setBold(true);
            headerFont.setFontHeightInPoints((short) 14);
            headerFont.setColor(IndexedColors.BLUE.getIndex());
    
            // Create a CellStyle with the font
            CellStyle headerCellStyle = workbook.createCellStyle();
            headerCellStyle.setFont(headerFont);
    
            // Create a Row
            Row headerRow = sheet.createRow(0);
    
            // Create cells
            for (int i = 0; i < columns.length; i++) {
                Cell cell = headerRow.createCell(i);
                cell.setCellValue(columns[i]);
                cell.setCellStyle(headerCellStyle);
            }
            
            headerFont.setColor(IndexedColors.BLACK.getIndex());
            headerCellStyle.setFont(headerFont);
    
            for (int u = 0; u < listaTimova.get(teamNumber).listaIgracaTima.size(); u++)
            {   
                Row headerRow2 = sheet.createRow(u + 1);
                **RowCreation(headerRow2, teamNumber, u, 0);**      
            }
            
            for(int i = 0; i < columns.length; i++) 
            {
                sheet.autoSizeColumn(i);
            }
        }
    
    
    **public void RowCreation(Row row, int teamNumber, int playerNumber, int cellNumber)** 
        {
            
            row.createCell(cellNumber, CellType.STRING).setCellValue("Any value for cell");
            row.createCell(cellNumber+1, CellType.STRING).setCellValue("next cell in row value...");
            }
 类似资料:
  • 我正在写一个程序,它需要从excel文件中读取和写入数据,而不考虑格式(xls或xlsx)。 我知道ApachePOI,但它似乎有不同的类来处理xls文件(HSSF)和xlsx(XSSF)文件。 任何人都知道我将如何实现我在这里的目标。(也欢迎使用POI以外的API的想法)。

  • 嗨,我想在第一行搜索一个字符串,如果找到了,我想移动那一列。

  • 我正在尝试使用列表迭代器来遍历一个链表,并根据存储在那里的整数值对下一个节点进行一些操作/检查,但我的代码中出现了一些错误。我想我不明白iterator.next()正在返回什么(一些E对象,但我不知道如何从它中访问我想要的值)编辑器希望我做一些如下所述的转换。它摆脱了错误,但我不知道这是否是处理问题的安全方法,或者它是否具有我正在寻找的行为。请解释为什么我会得到错误,以及是否有一个好的方法来处理

  • 上周我刚开始在工作中学习Python。我正在尝试与我们的人力资源系统集成,并使用每个API将信息上传到Okta(我们的SSO提供商)。 HR API以以下格式输出一个json文件 然后,我想将它输入到一个名为的变量中,并将其放在我的代码中: 我希望遍历Result>EmployeeId>DisplayValue并将它们打印到一个dict中,然后在代码的另一部分中遍历这些

  • 我已经编写了用于编写xlsm(Excel2007)的java文件。 使用ApachePOI库,编写xlsx文件是成功的。编写xlsm文件是成功的。但我无法打开xlsm文件,因为打开xlsm文件时出错。 使用ApachePOI库编写xlsm文件可行吗? 如果可以编写xlsm,请提供如何使用ApachePOI库编写xlsm文件的指南。 谢谢

  • 使用JSF 2.0,我需要显示一个表,其中每一行都包含一个打开弹出窗口的链接。我有两种型号: