当前位置: 首页 > 知识库问答 >
问题:

使用Apache poi和电子邮件验证生成excel表

束建章
2023-03-14

我正在使用apache poi为电子邮件生成excel表——这意味着在生成excel后,如果用户在单元格中输入电子邮件,我需要验证该电子邮件

下面是我的代码

DVConstraint EmailConstraint=null;
DataValidation EmaildataValidation =null;

EmailConstraint=DVConstraint.createCustomFormulaConstraint("AND(FIND("+'@'+",$A$2),FIND(.,$A$2),ISERROR(FIND( ,$A$2)))");---->getting error here only

EmaildataValidation =dataValidationHelper.createValidation(EmailConstraint, addressList1);
       EmaildataValidation.setSuppressDropDownArrow(false);
       sheet.addValidationData(EmaildataValidation);

当我执行这个方法时,我得到了以下错误

Stacktrace:] with root cause
org.apache.poi.ss.formula.FormulaParseException: Parse error near char 9 '@' in specified formula 'AND(FIND(@,$A$2),FIND(.,$A$2),ISERROR(FIND( ,$A$2)))'. Expected cell ref or constant literal
    at org.apache.poi.ss.formula.FormulaParser.expected(FormulaParser.java:188)
    at org.apache.poi.ss.formula.FormulaParser.parseSimpleFactor(FormulaParser.java:1128)
    at org.apache.poi.ss.formula.FormulaParser.percentFactor(FormulaParser.java:1083)
    at org.apache.poi.ss.formula.FormulaParser.powerFactor(FormulaParser.java:1070)
    at org.apache.poi.ss.formula.FormulaParser.Term(FormulaParser.java:1430)
    at org.apache.poi.ss.formula.FormulaParser.additiveExpression(FormulaParser.java:1530)
    at org.apache.poi.ss.formula.FormulaParser.concatExpression(FormulaParser.java:1514)
    at org.apache.poi.ss.formula.FormulaParser.comparisonExpression(FormulaParser.java:1471)
    at org.apache.poi.ss.formula.FormulaParser.Arguments(FormulaParser.java:1056)
    at org.apache.poi.ss.formula.FormulaParser.function(FormulaParser.java:943)
    at org.apache.poi.ss.formula.FormulaParser.parseNonRange(FormulaParser.java:536)
    at org.apache.poi.ss.formula.FormulaParser.parseRangeable(FormulaParser.java:416)
    at org.apache.poi.ss.formula.FormulaParser.parseRangeExpression(FormulaParser.java:237)
    at org.apache.poi.ss.formula.FormulaParser.parseSimpleFactor(FormulaParser.java:1123)
    at org.apache.poi.ss.formula.FormulaParser.percentFactor(FormulaParser.java:1083)
    at org.apache.poi.ss.formula.FormulaParser.powerFactor(FormulaParser.java:1070)
    at org.apache.poi.ss.formula.FormulaParser.Term(FormulaParser.java:1430)
    at org.apache.poi.ss.formula.FormulaParser.additiveExpression(FormulaParser.java:1530)
    at org.apache.poi.ss.formula.FormulaParser.concatExpression(FormulaParser.java:1514)
    at org.apache.poi.ss.formula.FormulaParser.comparisonExpression(FormulaParser.java:1471)
    at org.apache.poi.ss.formula.FormulaParser.Arguments(FormulaParser.java:1056)
    at org.apache.poi.ss.formula.FormulaParser.function(FormulaParser.java:943)
    at org.apache.poi.ss.formula.FormulaParser.parseNonRange(FormulaParser.java:536)
    at org.apache.poi.ss.formula.FormulaParser.parseRangeable(FormulaParser.java:416)
    at org.apache.poi.ss.formula.FormulaParser.parseRangeExpression(FormulaParser.java:237)
    at org.apache.poi.ss.formula.FormulaParser.parseSimpleFactor(FormulaParser.java:1123)
    at org.apache.poi.ss.formula.FormulaParser.percentFactor(FormulaParser.java:1083)
    at org.apache.poi.ss.formula.FormulaParser.powerFactor(FormulaParser.java:1070)

我尝试了很多,但做不到。

共有1个答案

郏兴贤
2023-03-14

查找函数的第一个参数是字符串,因此必须将其引用。在java中,可以在公式之间使用转义字符串字符。

 类似资料:
  • 我正在提示我的应用程序用户提供电子邮件凭据。 在用户插入电子邮件并通过后,我想验证该帐户。 我正在使用javax。邮政有没有办法验证帐户?只确保凭据确实有效——否则我想显示一个无效用户并传递消息。 也许是某种表演方式: 并在不发送任何内容的情况下检查身份验证异常。

  • 我有一张登记表,上面有姓名、电子邮件和密码。注册时,会向用户的电子邮件地址发送一个确认链接。但在发送链接之前,我需要验证电子邮件地址。我使用了: 它显示的任何电子邮件都有效,例如, 我从获得的电子邮件并将其存储在中。 我到底要怎么做才能让它成功?

  • 如果不使用JavaScript,那么仅使用Django如何做到这一点呢?

  • 每当我在Firebase中使用电子邮件/密码身份验证提供程序时,提供程序都会在成功注册时发送一个无记名令牌,即使是。是否有一种开箱即用的方法将电子邮件/密码身份验证提供程序配置为在用户验证其电子邮件地址之前不发送无记名令牌(并返回403错误)? 请注意,我知道如何创建用户、登录用户、发送验证电子邮件等。。。使用firebase v9。x通过firebase/auth中的方法创建用户(使用Email

  • 我目前正在开发一个移动应用程序作为我最后一学期的项目。在我的移动应用程序中,我使用Firebase身份验证进行了此电子邮件验证。这是我执行此功能的教程(如果您感兴趣)。 Firebase登录 我这里的问题是,当我在我的移动应用程序中添加了重置密码功能(本教程的下一部分)时,即使电子邮件经过验证,电子邮件验证警报仍然存在。 设置活动(重置密码和电子邮件验证功能所在) 这是错误日志 这是设置中的图片

  • 问题内容: 我有这个EditText定义: 注意,EditText具有使用电子邮件地址规范定义的inputType。Android是否内置任何可验证电子邮件地址输入类型的内容,还是都必须手动完成?它允许我输入无效数据,所以我对它的用途感到好奇。 谢谢。 问题答案: 在这里,通过输入电子邮件类型,您可以将电子邮件类型的键盘设置为“ @”和“。”。关键字将显示在键盘上。 更好的解决方案是通过以下功能比