2011-05-06 9 views
1

JavaのHSSF POIを使用してExcelドキュメントを作成していますが、Excelのテンプレートを使用しています。 。Java HSSF POIを使用してExcelにフィールドを設定する - Excelが日付フィールドを正しくソートしない

HSSFWorkbook workbook = readFile(TEMPLATE_LOCATION); 

そして、私の問題私はそうのようなMM/DD/YYYYの日付形式のデータと列のいずれかを取り込むとき...

row.createCell((short)column++).setCellValue(Tools.dateToString(rfq.getCreationDate())); 

それが適切で列を移入ということですデータのように.... 01/01/2011 05/04/2010私はautofilter-を言う使用して(Excelで)この列でソートを実行したとき2009年3月3日

バグがソートそれはそうのような間違った順序で日付を返し、その後昇順>です....

2009年3月3日

2010年5月4日

2011年1月1日

(それは文字列のようにそれを読んで、その代わりに、日付によってソートのソートされたように)

...

は、私が「数値」の列と列を設定しようとしました、その後、ソートまだサイコロが....また、この方法をフォーマットする

 cell = row.createCell((short)column++); 
     cell.setCellStyle(workbook.createCellStyle()); 
     cell.getCellStyle().setAlignment(HSSFCellStyle.ALIGN_RIGHT); 
     cell.setCellType(cell.CELL_TYPE_NUMERIC); 
     cell.setCellValue(Tools.dateToString(rfq.getCreationDate())); 

にも助けませんでした

SimpleDateFormat formatter = new SimpleDateFormat("M/d/yyyy"); 
row.createCell((short)column++).setCellValue(formatter.format(order.getCreationDate())); 

これはすべてExcel 2003で行われています。どのように解決するかの手掛かりはありません。あなたは、細胞を移植する際

答えて

2

あなたの問題は、文字列にデータを変換していることである

row.createCell((short)column++).setCellValue(Tools.dateToString(rfq.getCreationDate())); 

私はJavaのユーザーではないよ、そうではないことを確認、しかし、あなたはちょうど

row.createCell((short)column++).setCellValue(rfq.getCreationDate()); 
を試みることができます

基礎となるデータがExcelで日付として認識する形式である場合は、それはOKである必要があります。