我正在使用Java通过Apache POI读取excel,甚至在读取文件的每个单元格之前,我想通过在每列(例如名称,电话,电子邮件)上应用正则表达式来知道文件是否包含不正确/错误的格式数据每个单元格。谁能知道我们如何实现这一目标,或者对此有任何解决方法?
例如,如果excel包含列-名,姓,日期,电子邮件,并且我想知道名和姓中的数据是否包含空值或特殊字符,或者是否以无效格式输入了电子邮件。如果有10-20k个相同的条目。现在,如果我遍历每个单元格并进行模式匹配,则会消耗时间,因此,我想知道是否有某种方式可以一次对特定模式的每一列进行一次迭代]
[不确定这是否是您想要的,我将通过Excel文件验证输入的内容是,我会将单元格值解析为DataFormatter
,并获得该单元格值的String
表示形式。然后对获得的值执行所需的验证。
这样做可以避免出现Excel自动转换值格式的情况。例如,01/01/2020以转换后的格式Date
表示为1/1/2020,而11/12/2020以Excel的格式General
表示。
DataFormatter dataFormatter = new DataFormatter(); String cellOutput = dataFormatter.formatCellValue( cell ).trim();
然后处理相应的值
validateAndProcessCellInput( cellOutput );