输入xlsx文件中有一个字段,可以包含电子邮件或手机号码。在阅读时,我有以下逻辑 -
for (NSString *key in orderedKeys) {
NSArray *properties = dict[key];
...
}
使用正确的10位移动电话号码,以下是输出 -
Workbook workbook = WorkbookFactory.create(new File("./TXN_Log_Mar_18_input.xlsx"));
Sheet sheet = workbook.getSheetAt(0);
Iterator<Row> rowIterator = sheet.rowIterator();
while (rowIterator.hasNext() && cnt <maxRows) {
System.out.println("\n\nNew row "+cnt+" ");
Row row = rowIterator.next();
if(row.getCell(11).toString() !="" || row.getCell(12).toString() !="")
{
String debitUser = row.getCell(11).toString();
System.out.println("input mobile? "+debitUser);
if(emailFormat(debitUser) || mobileFormat(debitUser))
{
response = umCall(debitUser);
}
}
}
答案 0 :(得分:1)
我假设您使用的是Apache POI,因此我建议您不要使用toString()方法。改为使用getCellValue()方法。
如果您知道单元格包含的值的类型,则可以使用返回double的特定方法,如getNumericCellValue()。然后您可以根据需要格式化数据。
double cellValue = row.getCell(11).getNumericCellValue();
System.out.println("input mobile? " + (int) cellValue);
可能是这样的。
请参阅单元格文档以找到最佳方法。
https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/Cell.html
另外,我建议您在处理数据之前检查单元格的类型。
答案 1 :(得分:0)
我无法看到getCell()返回的类型,但我猜测它是BigDecimal,或类似的东西。 BigDecimal有toPlainString(),它可以防止使用指数表示法格式化大数字。无论返回什么类型,请查看类似的方法。