Groovy для получения значений из xlsx с помощью Apache POI - PullRequest
0 голосов
/ 18 января 2019

Я пытаюсь прочитать значения из файла xlsx в свойствах в SoapUI 5.4.0.

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.xssf.usermodel.*;
import org.apache.poi.ss.util.*;
import org.apache.poi.ss.usermodel.*;
import java.io.*;

class ExcelReader {

  def readData() {
        def path = "C:\\docs\\data.xlsx";
        InputStream inputStream = new FileInputStream(path);
        Workbook workbook = WorkbookFactory.create(inputStream);
        Sheet sheet = workbook.getSheetAt(0);

        Iterator rowIterator = sheet.rowIterator();
        rowIterator.next()
        Row row;                       
        def rowsData = []
        while(rowIterator.hasNext()) {
             row = rowIterator.next()
             def rowIndex = row.getRowNum()
             def colIndex;
             def rowData = []
             for (Cell cell : row) {
                 colIndex = cell.getColumnIndex()
                  rowData[colIndex] = cell.getRichStringCellValue().getString();
             }                    
             rowsData << rowData
         }
         rowsData
  }
 }

def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
def myTestCase = context.testCase

ExcelReader excelReader = new ExcelReader();
List rows = excelReader.readData();
def d = []
Iterator i = rows.iterator();
while( i.hasNext()){
         d = i.next();
         myTestCase.setPropertyValue("From", d[0])
         myTestCase.setPropertyValue("To", d[1])       
         testRunner.runTestStepByName( "ConversionRate")

}

Я скопировал следующие файлы jar зависимостей в папку /bin/ext в корне SoapUI:

commons-collections4-4.2-javadoc.jar
commons-collections4-4.2.jar
commons-compress-1.18.jar
dom4j-1.6.1.jar
poi-4.0.1.jar
poi-examples-4.0.1.jar
poi-excelant-4.0.1.jar
poi-ooxml-4.0.1.jar
poi-ooxml-schemas-4.0.1.jar
poi-scratchpad-4.0.1.jar
xmlbeans-3.0.2.jar

При выполнении скрипта я получил сообщение об ошибке:

org.apache.poi.ooxml.POIXMLException: org.apache.xmlbeans.XmlOptions.setEntityExpansionLimit (I), Lorg / Apache / XMLBeans / XmlOptions; ошибка в строке: 39

Строка 39: List rows = excelReader.readData();

1 Ответ

0 голосов
/ 18 января 2019

Мой совет: воспользуйтесь доступным пакетом jar Fillo и подключитесь к XLS для получения данных. банка Fillo

Необходим следующий импорт:

import com.codoid.products.exception.FilloException;
import com.codoid.products.fillo.Connection;
import com.codoid.products.fillo.Fillo;
import com.codoid.products.fillo.Recordset;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...