Добавить содержимое ячейки excel в новый файл excel

У меня есть фрагмент кода, который читает содержимое и вставляет его в новый файл excel

Код

for(int rownum=2; rownum<=datatable.getRowCount(testName); rownum++)
    for(int colnum=1; colnum<=datatable.getColumnCount(testName); colnum++) {
        datatable.getCellData(testName, "Serial", rownum);
       //Get value of other column  Serial :)
        String getdata = datatable.getCellData(testName, "Rules", rownum);
        if (datatable.getCellData(testName, "Serial", rownum).equals(serial)) {
            datatable.getCellData(testName, colnum, rownum);
            datatable.setCellData(testName, "Result", rownum,"PASS" );
            datatable = new Xls_Reader(System.getProperty("user.dir")+"//src//config//Result.xlsx");
            datatable.setCellData("Data Sheet", "Results", rownum,"PASS" );
            datatable.setCellData("Data Sheet", "Summary", rownum, getdata);
        }
    }

Теперь это передается как (String, string), и это для одного тестового примера, который выполняется. Проблема в том, что когда я вставляю содержимое в Result, он будет сохранен в ячейке 2, 3. Это будет перезаписано снова и снова. Я хочу добавить все несколько выполненных случаев, которые находятся на нескольких листах, и Результат должен быть добавлен. Это возможно ? Пожалуйста помоги.

1
nl ja de
Не совсем понятно, что делают все эти функции. Не могли бы вы хотя бы немного объяснить, что мы здесь видим? В частности, что такое параметры setCellData ()? Из того, что я вижу, у вас есть значение rownum, которое используется для указания номера строки каждого фрагмента данных, который вы помещаете в файл excel. Верно ли это, или происходит переписывание, потому что он каждый раз задает данные одной и той же ячейки, потому что использует одни и те же координаты ячейки?
добавлено автор Bartvbl, источник
Также обратите внимание, что условие цикла цикла проверяется каждый раз, когда выполняется выполнение цикла. Если вы фактически добавляете строки в свой документ, значения внутри части условия for оператора цикла будут меняться (datatable.getRowCount (testName) и datatable.getColumnCount (testName)). Чтобы этого избежать, вы можете сохранить значения в переменных перед запуском циклов. Это также добавляет ясности кода.
добавлено автор Bartvbl, источник
Это дизайн для базы данных Driven Framework. В листе, соответствующем имени testname, он будет перебирать строки и печатать результат/неудачу результата в столбце «Результат». GetCellDate будет извлекать значения соответствующего листа, номера столбца и строки.
добавлено автор Ram, источник
Serial - это столбец, в котором я дал серийный номер #. если он равен 1, он будет извлекать строки # и col # и сравнивать, setCellData будет записывать значения того, что находится в конкретной строке. то я передал те же результаты в другом листе под названием «Лист данных». Все отлично работают.
добавлено автор Ram, источник
Если он находится в другом testname, который является «листом», он передаст имя сценария String и строку Serial #, и так оно и будет работать. Теперь каждый раз это печатает результаты в «Лист данных» в строке 1,2 и так далее. Если я запустил тестовый пакет, последний тестовый прогон будет находиться в файле Data Sheet. Мне нужно добавить весь столбец результатов набора тестов
добавлено автор Ram, источник

1 ответы

Я собираюсь сделать дикое предположение, но я думаю, что знаю, что происходит.

Перед началом этого фрагмента вы прочитали на листе XSL, хранящемся в переменной dataSheet. В цикле for в начале фрагмента будет отображаться содержимое переменной dataSheet, чтобы проверить условие завершения для каждой итерации.

Если последовательное значение равно некоторому значению, вы делаете некоторые вещи, а затем перезаписываете переменную таблицы данных новым документом, в котором вы переходите к хранению нескольких значений. Когда цикл завершится, он рассмотрит это новое техническое описание, будет ли цикл завершен, и, насколько я могу судить, это будет продолжаться вечно, заменив исходный документ на каждой итерации.

Чтобы исправить это, по крайней мере, поместите вновь созданный лист данных в отдельную именованную переменную и сохраните ширину и высоту исходной таблицы данных в переменных перед входом в циклы, чтобы они не были изменены во время выполнения циклов. По внешнему виду вы также извлекаете данные из листа данных, не используя его, или это только я?

1
добавлено
ya. Некоторое значение ячейки выбирается и вводится в новый лист. Спасибо
добавлено автор Ram, источник
pro.jvm
pro.jvm
3 503 участник(ов)

Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш сайт: projvm.com projvm.ru Наш канал: @proJVM Вакансии: @jvmjobs Конфы: @jvmconf

Java & Co
Java & Co
2 370 участник(ов)

Можно обсуждать с матом и без всё, что касается жабы, вплоть до холиваров. НЕ ИМЕЕТ ОТНОШЕНИЯ К САЙТУ JAVARUSH.RU ПРАВИЛА - https://t.me/javarush/75723 Вакансии сюда - https://telegram.me/joinchat/B7IzvUCnfo6d8t3yIxKguQ По вопросам - @thedude

learn.java
learn.java
1 888 участник(ов)

Чат для начинающих и не только Статистика: https://combot.org/chat/-1001083535868 Основной чат - @jvmchat

Java Underground
Java Underground
169 участник(ов)

https://vk.com/javatutorial

Javanese Questions
Javanese Questions
109 участник(ов)

Чат предназначен для обмена знаниями строго в формате в вопрос-ответ. Тема — Java, Kotlin и Android. Вопрос должен быть предварительно прогуглен, понятно и грамотно сформулирован, помечен хэштегами. Ответ — тем более. Куски кода размером в несколько строк можно писать прямо здесь, для больших кусков кода стоит использовать http://gist.github.com/, http://pastebin.com/, https://codeshare.io/ или любой аналогичный сервис. В некоторых случаях можно прикреплять скриншоты. Стикеры и гифки запрещены. Дополнять и уточнять вопросы и ответы — редактированием исходного сообщения. Обсуждения должны приводить к редактированию вопроса/ответа и удаляться. По хештегам можно искать существующие вопросы и овтеты: #вопрос #ответ #git #generics #java #server #awt #javafx #swing #kotlin #anko #tornadofx #ktor #android #recyclerView #performance #arch #network #permissions #storage #async