2012-03-22 93 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

相关问题