"Проблема в том, что у меня есть значения в ячейке, которые выглядят как числа" => выглядят как числа при просмотре в Excel?
"но на самом деле это строки" => что это значит? Как вы ЗНАЕТЕ, что они действительно являются строками?
«Если я посмотрю на ячейку формата» => что такое «ячейка формата» ???
'... в Excel написано, что тип "text"' => Пожалуйста, объясните.
«Тем не менее, ячейка HSSF считает, что она числовая». => Вы имеете в виду, что the_cell.getCellType () возвращает Cell.CELL_TYPE_NUMERIC?
"Как я могу получить значение в виде строки?" => если это NUMERIC, получить числовое значение с помощью the_cell.getNumericCellValue (), а затем отформатировать его в виде строки любым удобным для вас способом.
«Если я попытаюсь использовать cell.getRichStringValue, я получу исключение;» => так что это не строка.
"если cell.toString, это не то же самое значение, что и в листе Excel." => поэтому cell.toString () не форматирует его так, как это делает Excel.
То, что эвристический Excel использует для определения типа, для вас не имеет значения. Это РЕЗУЛЬТАТ этого решения, хранящегося в файле и раскрываемого функцией getCellType (), имеет значение.