有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Apache POI读取单元(下午12:35:00)时间值返回1899年12月31日

我正在尝试用java读取xlsx文件
在我到达时间单元之前,它似乎工作得很好,它打印了一个ood日期
这对所有时间值都适用
如何使真正的单元格成为字符串
如果有更好的方法,请告诉我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) 个答案

  1. # 1 楼答案

    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());
    


    il prob将其更改为如果在X索引中使用该格式,希望它能帮助其他人