2010-03-25 2 views
0

Мне нужно создать файл excel с POI-3.2-Final (не может обновиться до 3.5+, для проблем с совместимостью с ретро), и для каждой строки мне нужно отформатировать дату в столбце A.Как я могу применить стиль dateformat к одному столбцу в Excel с POI-3.2-FINAL?

Основано на имена методов, я думал, что способ сделать это было:

short dateFormat = workbook.createDataFormat().getFormat("dd/MM/yyyy HH:mm"); 
... 
cell = row.createCell(0); 
cell.setCellValue(new Date()); 
cell.getCellStyle().setDataFormat(dateFormat); 

но забавная вещь на самом деле, это относится этот стиль ко всем клеткам.

Итак, имея в виду, что я не могу переключать API (без обновления, без csv, без jexcel), есть ли способ достичь того, что я хочу?

Благодаря

ответ

1

Ваша проблема заключается в том, что вы меняете CellStyle по умолчанию!
cell.getCellStyle() дает вам стиль, который в настоящее время установлен на этой ячейке, который обычно является стилем по умолчанию, если вы еще не изменили его.
Для того, чтобы сделать эту работу, как вы ожидаете, что вам нужно создать новый объект CellStyle из вашего DateFormat и установить, что в клетке, как это:

dateStyle = workbook.createCellStyle(); 
... 
dateStyle.setDataFormat(dateFormat); 
cell.setCellStyle(dateStyle); 

Кроме того, убедитесь, что вы создаете объект стиля только один раз и повторно использовать его для всех ячеек, которые вы хотите иметь в этом стиле.

+0

ahh отлично! спасибо, действительно! –

Смежные вопросы