2012-03-22 5 views
-2

Я читаю xlsx файл с использованием apche POI и конвертируется в файл csv, но меняет формат данных. Например, в моей дате файла xlsx в формате 02/01/2010 (dd/mm/yyyy), но при создании csv он меняется в 02/январе/2010. он также меняет формат валюты. Как я могу читать все данные в виде строки, как они есть в файле excel?Apache POI читать xlsx файл без изменения формата

+1

Как вы конвертируете в CSV? Ваш собственный код? Один из примеров? Один из текстовых экстракторов? – Gagravarr

+0

Я просто читаю xlsx ячейку файла по ячейке и создаю файл csv. –

+0

Как вы создаете csv? Какой код вы используете для перевода? Если это ваше, попробовали ли вы посмотреть примеры POI CSV, чтобы увидеть, что там сделано по-другому? – Gagravarr

ответ

1

Excel хранит даты как числа, поэтому единственный способ определить, действительно ли ячейка хранится в качестве даты, - это посмотреть на форматирование. В HSSFDateUtil есть вспомогательный метод, который проверяет это.

case HSSFCell.CELL_TYPE_NUMERIC: 
     double d = cell.getNumericCellValue(); 
     // test if a date! 
     if (HSSFDateUtil.isCellDateFormatted(cell)) { 
      // format in form of M/D/YY 
      cal.setTime(HSSFDateUtil.getJavaDate(d)); 
      cellText = 
      (String.valueOf(cal.get(Calendar.YEAR))).substring(2); 
      cellText = cal.get(Calendar.MONTH)+1 + "/" + 
         cal.get(Calendar.DAY_OF_MONTH) + "/" + 
         cellText; 
     } 
+0

Что вы здесь делаете? Вопрос в том, как читать запись ячейки как String. –

+0

Я хочу создать файл csv без изменения формата. –

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