Чтение значений в ячейках Excel, содержащих специальные (UTF-8) символы - Selenium / Java - PullRequest
0 голосов
/ 17 января 2020

У меня есть следующий код:

    @Test(groups = {"customer"}, dataProvider = "customerData", dataProviderClass = Testdata.class, priority = 0)
    public void createCustomer(String cName, String cAddress, String cAddress2, String cCity, String cState, String cZip, String cContact, 
        String cPhone) throws InterruptedException {        
        NAV.customer.create(driver, wait, js);
        NAV.customer.edit(driver, wait, js, cName, cAddress, cAddress2, cCity, cState, cZip, cContact, cPhone);
        NAV.windowClose(driver, wait, js);
    }

и я использую следующий код для чтения моего файла Excel:

import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.DataFormatter;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class Testdata {
    public static Object[][] getExcel(String filepath, String sheetName) throws InvalidFormatException, IOException {
        FileInputStream file = new FileInputStream(filepath);
        XSSFWorkbook wb = new XSSFWorkbook(file);
        XSSFSheet sheet = wb.getSheet(sheetName);
        int rowCount = sheet.getLastRowNum();
        int column = sheet.getRow(0).getLastCellNum();
        Object[][] data = new Object[rowCount][column];
        for (int i = 1; i <= rowCount; i++) {
            XSSFRow row = sheet.getRow(i);
            for (int j = 0; j < column; j++) {
                XSSFCell cell = row.getCell(j);
                DataFormatter formatter = new DataFormatter();
                String val = formatter.formatCellValue(cell);
                data[i - 1][j] = val;
            }
        }
        wb.close();
        return data;
    }
}

Я использую Selenium 3.14 (кодировка текстового файла UTF-8) и Apache POI 4.1.0. Мой файл Excel имеет кодировку UTF-8, и все ячейки отформатированы как текст.

К сожалению, некоторые специальные символы (в моем случае: é, ç и Î, но я уверен, что их больше) не читаются правильно , Любая помощь будет высоко ценится.

...