Java итератор через строки Excel

2

Я проверяю каждую строку excel и искал определенную ценность. После того, как я нашел это значение, он должен распечатать вывод о местоположении этой строки. Но если это значение неверно или не найдено, я печатаю совпадение не найдено. Поэтому каждый раз, когда я делаю это, мой вывод всегда: Match не найден.

PS barcode - это мое строковое значение, проанализированное из другого класса (я отлаживаю его значение передается правильно).

Более того, если я пишу только в случае без else, если программа может найти это значение, но в случае неправильного значения я ничего не получу.

Моя проблема в том, что каждый раз я запускаю это, если цикл no mater, если строка штрих-кода верна или нет, я всегда получал совпадение не найден.

Моя задача - сканировать файл excel и найти значение, которое мне нужно в этом случае, штрих-код и распечатать всю строку, но если штрих-код неверен, мне нужно напечатать это совпадение, которое не было обнаружено, что пользователь сможет узнать, что введенный штрих-код неверен.

try {
        FileInputStream file = new FileInputStream(new File("Turto sarašas 2016.09.30.xlsx"));

        //Create Workbook instance holding reference to .xlsx file
        XSSFWorkbook workbook = new XSSFWorkbook(file);

        //Get first/desired sheet from the workbook
        XSSFSheet sheet = workbook.getSheetAt(0);

        //Iterate through each rows one by one
        Iterator<Row> rowIterator = sheet.iterator();

        while (rowIterator.hasNext()) {
            Row row = rowIterator.next();
            //For each row, iterate through all the columns
            Iterator<Cell> cellIterator = row.cellIterator();

            while (cellIterator.hasNext()) {

                Cell cell = cellIterator.next();
                //Check the cell type and format accordingly
                final DataFormatter df = new DataFormatter();
                String valueAsString = df.formatCellValue(cell);
                if (valueAsString.equals(barcode)) {
                    System.out.print("Hello" + row.getCell(0));
                    System.out.print("Hello" + row.getCell(3));
                } else if (!valueAsString.equals(barcode)) {
                    System.out.println(" Match not found");
                }
            }
        }

        file.close();
    } catch (IOException e) {
    }
  • 0
    mkyong.com/java/...
  • 1
    1. Никогда не пропускайте исключения, потому что, если вы их выбросите, вы получите решение проблемы намного быстрее. Я не в используемой вами библиотеке, но может ли значение быть нулевым? Возможно, значение равно нулю, и вы пытаетесь проверить, является ли значение пустой строки тем значением, которое вы хотите. Возможно, добавьте нулевую проверку значения перед сравнением строк.
Показать ещё 3 комментария
Теги:
excel

1 ответ

2
Лучший ответ

Код работает должным образом. Если возможно, поделитесь этим входом xlsx для отладки.

  • 0
    Мой ввод 8k строк: совпадений не найдено. То есть никаких ошибок или чего-то подобного. Я даже искал по всем строкам и не мог увидеть, нашла ли программа то, что я искал.
  • 0
    Включите приведенный ниже код для утверждения if и лучше закомментируйте или удалите другое выражение if. System.out.println (cell.getAddress (). GetRow () + "/" + cell.getAddress (). GetColumn ());
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню