Apache POI读取单元格(12:35:00 PM)时间值返回到1899年12月31日

时间:2016-11-01 18:13:26

标签: java excel apache-poi

我正在尝试读取java中的xlsx文件 似乎工作得很好,直到我到达时间单元打印ood日期
这样做可以用于所有时间值 我如何得到真正的细胞串 所以如果这是一个更好的方式来做这个PLZ让我知道thx

代码:

FileInputStream fileIn = null;
        FileOutputStream fileOut = null;
        Workbook wb = null;
        try
        {
            fileIn = new FileInputStream(filename);
            wb = new XSSFWorkbook(fileIn);
            Sheet sheet = wb.getSheetAt(0);
                System.out.println(wb.getNumberOfSheets());
            Iterator<Row> r=sheet.rowIterator();
            while(r.hasNext())
            {
               Row getrow=r.next();
               Iterator<Cell> c=getrow.cellIterator();
               while(c.hasNext())
               {
                   Cell getcell=c.next();
                   System.out.print(getcell.toString()+" @ ");

               }
                System.out.println("");
            }

希望这是我第一次使用dropbox分享这样的文件 xlsx文件: THE FILE IN DROPBOX

1 个答案:

答案 0 :(得分:0)

Reading time values from spreadsheet using poi api
这篇文章给了我一个提示并解释了问题

//get date
        Date date = poiCell.getDateCellValue();

        //set up formatters that will be used below
        SimpleDateFormat formatTime = new SimpleDateFormat("HH:mm:ss");
 if(getcell.toString().contains("31-Dec-1899")){
                      // System.out.println(getcell.getDateCellValue());
                       String timeStamp =formatTime.format(getcell.getDateCellValue());

如果在X索引处使用格式希望它帮助其他人

,则可以改变它