2012-03-22 94 views
-2

我正在讀取使用apche POI的xlsx文件並將其轉換爲csv文件,但它正在更改數據格式。例如在02/01/2010(dd/mm/yyyy)格式的xlsx文件日期中,但在創建csv時,它將在02/Jan/2010中更改。它也在改變貨幣格式。我如何讀取所有數據作爲字符串,因爲他們在Excel文件中?Apache POI讀取xlsx文件而不更改格式

+1

你如何轉換爲CSV?你自己的代碼?其中一個例子?文本提取器之一? – Gagravarr 2012-03-22 09:46:29

+0

我只是按單元格讀取xlsx文件並創建csv文件。 – 2012-03-22 12:19:51

+0

你是怎麼創建csv的?你用什麼代碼翻譯?如果這是你的,你有沒有試過看POI CSV的例子,看看有什麼不同呢? – Gagravarr 2012-03-22 12:38:51

回答

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的形式讀取單元格條目。 – 2012-03-22 09:29:57

+0

我想創建csv文件而不更改值格式。 – 2012-03-22 12:18:03