无法从静态上下文引用Java POI非静态方法getFormat(Java.lang.String)
刚刚安装了POI 3.8 JAR并更改了代码…我收到以下错误:无法从静态上下文引用Java POI非静态方法getFormat(Java.lang.String),java,apache-poi,Java,Apache Poi,刚刚安装了POI 3.8 JAR并更改了代码…我收到以下错误: public static void setStyleDataFormat( CellStyle style, int formatType ) { switch( formatType ) { case CELL_TYPE_PERCENTAGE: style.setDataFormat(DataFormat.getFormat("0%")); br
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)应该能够帮助您解决此问题。似乎Apache决定了您不应该如此静态。是一个接口,所以您不能像调用静态方法那样调用它
您的代码应该是
// 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");
}