CellStyle.setAlignment(Horizo​​ntalAlignment.CENTER)错误

时间:2018-07-19 15:04:43

标签: java apache-poi

CellStyle stringStyle = workbook.createCellStyle();
stringStyle.setAlignment(HorizontalAlignment.CENTER);

此代码产生错误:

  接口CellStyle中的

method setAlignment无法应用于给定类型;

     

必填:简短

     

找到:Horizo​​ntalAlignment

     

原因:方法调用转换无法将实际参数Horizo​​ntalAlignment转换为short

所以我将代码更改为使用短号:

CellStyle stringStyle = workbook.createCellStyle();
stringStyle.setAlignment((short)1);

我的IDE抱怨说:

  CellStyle中的

setAlignment(org.apache.poi.ss.usermodel.Horizo​​ntalAlignment)不能应用于(short)

所以它抱怨说,当我给它一个short时,它想要一个HorizontalAlignment;当我给它一个HorizontalAligment时,它想要一个short

1 个答案:

答案 0 :(得分:3)

您的类路径中必须具有不同的apache poi版本。因此您的IDE对此感到困惑。

apache poi 3.12中有 void setAlignment(short align)public final static short ALIGN_CENTER = 0x2;。所以代码应该是

CellStyle stringStyle = workbook.createCellStyle();
stringStyle.setAlignment(CellStyle.ALIGN_CENTER);

apache poi 3.12

但是自apache poi 3.15起已弃用此方法,并且自apache poi 3.17起已将其删除,现在仅以void setAlignment(HorizontalAlignment align)作为参数可以使用HorizontalAlignment。所以代码应该是

CellStyle stringStyle = workbook.createCellStyle();
stringStyle.setAlignment(HorizontalAlignment.CENTER);

apache poi 3.17

我怀疑您的IDE问题是由于以下事实造成的:来自不同版本apache poi 3.12apache poi 3.17的jar位于IDE的类路径中。不支持此操作,必须避免。