Java 如何在EventBasedExcelExtractor中使用DataFormatter

Java 如何在EventBasedExcelExtractor中使用DataFormatter,java,excel,apache-poi,Java,Excel,Apache Poi,我正在尝试将DataFormatter与EventBasedExcelExtractor一起使用。问题是numrec.getValue()中的文本格式与excel文件中的格式不同。即使使用FormatTrackingHSSFListener也不能保证提取的值与excel文件中表示的值完全相同。为什么FormatTrackingHSSFListener不够好?它似乎在很多事情上都能很好地工作,比如POI本身!因为它并不总是返回正确的格式。例如,2007年6月6日将是2007年6月6日,等等。我正在

我正在尝试将DataFormatter与EventBasedExcelExtractor一起使用。问题是numrec.getValue()中的文本格式与excel文件中的格式不同。即使使用FormatTrackingHSSFListener也不能保证提取的值与excel文件中表示的值完全相同。

为什么
FormatTrackingHSSFListener
不够好?它似乎在很多事情上都能很好地工作,比如POI本身!因为它并不总是返回正确的格式。例如,2007年6月6日将是2007年6月6日,等等。我正在比较许多excel文件,看看一组PDF是否是excel文件的精确转换。我需要文本精确,以确定pdf是精确转换还是稍微不同的文件的转换。您确定excel文件中的格式与您认为的格式相同吗?众所周知,Excel对格式撒谎,并在某些地区以不同的格式进行静默替换…日期在Excel文件中被格式化为2007年6月9日,并使用PDFBox正确返回,但当我在不使用FormatTrackingSsFlistener的情况下获取文本时,它返回39242.00。使用FormatTrackingHSSFListener,它将返回2007年6月9日。此外,所有整数都以十进制形式返回,因此2将以2.0的形式返回。假设您使用的是最新版本的Apache POI,那么您看到的是excel的一个令人讨厌的功能,它有时会向文件中写入与实际使用的格式不同的字符串。。。