Это просто некоторая предыстория того, что, как я подозреваю, происходит здесь.
На самом деле вы видите поведение Excel, которое угадывает, каким должен быть тип данных для столбца, и поскольку здесь нет буквенно-цифровых или каких-либо специальныхСимволы в вашем столбце 'sube' он попытается преобразовать эти значения в числовое значение, и поэтому он удаляет начальный ноль, потому что начальный ноль в десятичном (основание 10) числе не меняет фактическое значение числа.
Одним из решений может быть указание BeanWriter
всегда указывать ваши выходные данные.Это заставит Excel обрабатывать все ваши столбцы и данные как «текст», и тогда не следует пытаться интерпретировать и угадывать тип данных для столбцов.
См. Свойства формата потока CSV документация для дополнительных опций, но вы можете установить alwaysQuote = "true"
alwaysQuote - boolean - если установлено значение true, текст поля всегда заключается в кавычки.По умолчанию поле заключено в кавычки, только если оно содержит разделитель, кавычку или символы новой строки.BeanWriter, Marshaller
В свой xml-файл отображения BeanIO добавьте
<stream name="myStream" format="csv">
<parser>
<property name="alwaysQuote" value="true" />
</parser>
<!-- The rest of the mapping file content -->
</stream>
Другой вариант - взять под контроль Excel способ импорта файла csv для обработки этого конкретного столбца какtext
а не number
.Для этого используйте «Мастер импорта данных» из Excel.См. это , это и это для нескольких возможных вариантов.Есть еще много, если вы гуглите.