自己就遇到的几个问题说一下:
public class ff {
public static void main(String[] args) throws IOException {
HSSFWorkbook wwk = new HSSFWorkbook();
HSSFSheet sheet = wwk.createSheet("sheet1");
String strData = "";
UserPO userPO = new UserPO();
Field[] fields = userPO.getClass().getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
strData = strData.concat(fields[i].getName()).concat("\t");
}
strData = strData.concat("\r\n");
List<UserPO> list = DaoServiceProvider.getResInstanceDao().GetXLS("UserPO");
if (list != null && list.size() > 0) {
for (int i = 0; i < list.size(); i++)
strData = strData.concat(list.get(i).getName())
.concat("\t").concat(list.get(i).getPassword()).concat(
"\r\n");
}
HSSFRow row=sheet.createRow(( short )0);
HSSFCell cell=row.createCell((short) 0);
HSSFRichTextString hssfString = new HSSFRichTextString("11111111111111");
//HSSFRichTextString hssfString = new HSSFRichTextString(strData);
//cell.setCellValue(strData);
cell.setCellValue(hssfString);
sheet.autoSizeColumn((short) 0);
FileOutputStream stream = new FileOutputStream("E:/123.xls");
wwk.write(stream);
stream.close();
}
}
上述是自动调列宽的最基本的语句。
问题一:autoSizeColumn()这个方法在2.5 poi中是没有的。后来在3.0 poi存在就使用了;
问题二:setCellValue(strData);这个方法的使用,如果你里面的参数只是string,那么autoSizeColumn()这个方法就可能会失效。后来使用了HSSFRichTextString这种参数就实现了HSSFRichTextString hssfString = new HSSFRichTextString("11111111111111");其实他只是将string转化一下;
问题三:对于string参数的使用,就我上面写的那个strData字符串,好像就无法让其autoSizeColumn()方法失效。可能是用到了转义字符"\t" ,"\r\n"。
希望能给遇到这些问题的同学一点帮助。。。