CellStyle stringStyle = workbook.createCellStyle();
stringStyle.setAlignment(HorizontalAlignment.CENTER);
此代码产生错误:
接口CellStyle中的method setAlignment无法应用于给定类型;
必填:简短
找到:HorizontalAlignment
原因:方法调用转换无法将实际参数HorizontalAlignment转换为short
所以我将代码更改为使用短号:
CellStyle stringStyle = workbook.createCellStyle();
stringStyle.setAlignment((short)1);
我的IDE抱怨说:
CellStyle中的setAlignment(org.apache.poi.ss.usermodel.HorizontalAlignment)不能应用于(short)
所以它抱怨说,当我给它一个short
时,它想要一个HorizontalAlignment
;当我给它一个HorizontalAligment
时,它想要一个short
。
答案 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.12
和apache poi 3.17
的jar位于IDE的类路径中。不支持此操作,必须避免。