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

无法从静态上下文[重复]引用Java POI非静态方法getFormat(Java.lang.String)

诸葛奇玮
2023-03-14

刚刚安装POI 3.8 jar并更改代码...我得到这个错误:

 public static void setStyleDataFormat( CellStyle style, int formatType )
{
    switch( formatType )
    {
        case CELL_TYPE_PERCENTAGE:

            style.setDataFormat(DataFormat.getFormat("0%"));
            break;

        case CELL_TYPE_PERCENTAGE_TWO_DECIMAL_PLACES:

            style.setDataFormat(DataFormat.getFormat("0.00%"));
            break;

        case CELL_TYPE_NUMERIC:

            style.setDataFormat(DataFormat.getFormat("#,##0"));
            break;

        case CELL_TYPE_NUMERIC_TWO_DECIMAL_PLACES:

            style.setDataFormat(DataFormat.getFormat("#,##0.00"));
            break;

        case CELL_TYPE_DATE:
        case CELL_TYPE_DATE_EMPTY_ON_ERROR:

            style.setDataFormat(DataFormat.getFormat("m/d/yy"));
            break;

        case CELL_TYPE_CURRENCY:

            style.setDataFormat(DataFormat.getFormat("($#,##0.00);($#,##0.00)"));
            break;

        case CELL_TYPE_CURRENCY_NO_CENTS:

            style.setDataFormat(DataFormat.getFormat("($#,##0_);($#,##0)"));
            break;
    }
}

无法从静态上下文引用非静态方法getFormat(java.lang.String)

共有2个答案

祁永嘉
2023-03-14

DataFormat是一个接口,所以不能像调用静态方法那样调用它

您的代码应该是

   // Do this once per workbook
   DataFormat format = wb.createDataFormat();

   .....

   // Use the object in your per-cell work
   for (Cell c : row) {
       CellStyle cs = c.getCellStyle();
       cs.setDataFormat(format.get("dd/mm/yyyy");
   }
罗昕
2023-03-14

无法从静态上下文引用非静态方法,应该能够帮助您解决此问题。似乎Apache决定了您不应该如此静态。

 类似资料:
  • 刚刚安装了POI3.8 JAR并更改了代码...我得到了这个错误: 不能从静态上下文引用非静态方法getFormat(java.lang.String

  • 可能重复: 为什么我得到“非静态变量不能从静态上下文引用”? 这是代码 错误说: 不能从静态上下文引用非静态类节点 为什么我不应该在main()方法中引用Node类?

  • 下面的代码出现在我试图创建的包的主类中。它引用了一个名为Journey的helper类中的对象和方法。在用星号标记的行中调用方法时,我得到一个“Non static method conly be referenced from static context”错误。这使我感到困惑,因为我的印象是,在第二行中创建的Journey对象“ThisJourney”构成了类的一个实例,因此意味着上下文不是静

  • 我正在编写此代码,它显示了错误非静态方法googleapiability . isgoogleplayservicesavailable(上下文上下文)和googleapiability . get error dialog(Activity Activity,int errorCode,int requestCode)不能从静态上下文中引用。

  • 我正在尝试编写一段代码,当我选中两个复选框中的一个复选框时,它将更改我选择按钮时显示的消息。 我收到的错误消息是: "FirstWindow.java:12:错误:不能从静态上下文消息中引用非静态变量消息="good job\n";" 对于第12、37、53、57行。我已尝试在main中声明字符串变量,但我只会收到错误: “FirstWindow。java:38:错误:从内部类引用的局部变量必须是

  • 问题内容: 我对Java和一般编程非常陌生。我为一个基本程序编写了此代码,以将用户输入的2个数字相加,并将它们加起来并显示在输出框中,但是我得到了,但是我不知道什么是静态的 给出错误的行: 抱歉,如果我非常不称职,但我搜索了一下,但我真不明白该如何解决。谢谢。 问题答案: 在静态上下文中,您没有对象(类的实例),但是实例变量和方法取决于它们。 您有一个名为output1的实例,但是您尝试通过类的名