Требуется помощь, чтобы получить значение объединенной ячейки из «Итоговой цены». Как показано на изображении выше, это объединенная ячейка, начиная с строки с 13 по 18. Я использую приведенный ниже код, чтобы получить значение, но все равно получаю его как null.
CellRangeAddress mergedCell = new CellRangeAddress(12, 17, 9, 9);
int rowNum = mergedCell.getFirstRow();
int lastRow = mergedCell.getLastRow();
int colIndex = mergedCell.getFirstColumn();
for (int rowCounter = rowNum; rowCounter < lastRow; rowCounter++) {
Cell cell2Update = sheet.getRow(rowCounter).getCell(colIndex);
cell2Update.setCellType(Cell.CELL_TYPE_NUMERIC);
CellValue c = evaluator.evaluate(cell2Update);
if (null != c) {
Double lisPrice= c.getNumberValue();
if (lisPrice> 0) {
spreadheetResultData.setListPricetotal(df.format(lisPrice));
}
}
}
Пожалуйста, помогите мне получить значение объединенной ячейки.
Это J-столбец. Итак, обращаясь к изображению, вы имеете в виду, что значение должно быть получено из J13. Пробовал это уже, но все равно не удалось!
Вы уверены, что это одна объединенная ячейка? Судя по изображению, фактическое значение кажется слишком далеким от знака $
. Возможно, фактическое значение находится в столбце K
? (хотя это предположение, поскольку мы не можем видеть имена столбцов)
Да, я уверен . Это единственная объединенная ячейка. от J13 до J18.
Как упоминалось в комментарии, просто обратитесь к самой верхней левой ячейке, например, если диапазон от A2 до C4 объединен, тогда формула = A2 вернет содержимое объединенной ячейки, то же самое относится и к макросам.
Всего 1 столбец J + 6 строк с 13 по 18. Могу ли я получить код для извлечения значения из J13 ... J18? Я попытался получить J13, но все равно не смог получить значение.
Извините, какую ошибку вы получили, не уверен, что вы имеете в виду, вы не смогли получить значение, как указано в @Vityata, вы можете выбрать свою объединенную ячейку, чтобы увидеть эту возвращаемую ячейку, в другой ячейке на том же листе просто введите = J13, если это ничего не возвращает, перезапишите значение в объединенном диапазоне просто в качестве теста, чтобы увидеть, что возвращает формула.
Там написано J13, но все равно ничего не стоит. Может ли проблема быть в оценщике формул? в качестве ячейки формулы.
@ user3662369 - может быть. Попробуйте написать «Тест» вместо формулы и попробуйте. Если это сработает, это проблема формулы.
но формула проста = СУММ (D48, D63, D69, D85, D105, D114, D120, D143, D158, D164, D173, D188, D194, D206, D212, D266, D272, D287, D293, D305 , D323, D359, D371, D54, D91, D149, D179, D311) .... Я не вижу проблем с формулой.
@ user3662369 - да, проблем нет. Но все же неплохо было бы написать «тест» в объединенной ячейке и попытаться отобразить его. Как только вам это удастся, замените его формулой и попробуйте снова отобразить ...
Это код, который я пытался выполнить, но получил listPrice как 0,0 ................................... ......................... .................... . ................... ......... Cell cell2Update = sheet.getRow (12) .getCell (9); cell2Update.setCellType (Cell.CELL_TYPE_NUMERIC); Двойной listPrice = cell2Update.getNumericCellValue ();
@ user3662369 - Попробуйте использовать контрольная работа вместо формулы. Тогда попробуйте использовать String listPrice
вместо Double
. Может случиться так, что десятичный разделитель в вашей системе отличается от .
и не выполняет синтаксический анализ в Double
.
Как правило, для объединенных ячеек вам нужно выбрать самую верхнюю левую ячейку для реального значения.