使用apache poi时,将excel单元格大小与内容大小相匹配的问题

mvg*_*mvg 24 java apache-poi

我是Apache POI api的初学者.我正在尝试使用arraylist创建excel表.

我的java代码如下.

HSSFWorkbook wb = new HSSFWorkbook();
    HSSFSheet sheet = wb.createSheet("new sheet");
     HSSFCellStyle style = wb.createCellStyle();
        style.setFillForegroundColor(HSSFColor.LIME.index);
        style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

    HSSFRow row4 = sheet.createRow(4);
    row4.createCell(4).setCellValue("name");
    row4.createCell(5).setCellValue("emailId");
    sheet.autoSizeColumn(5);
    List<Bean> nameList = this.getArrayList();

    Iterator<Bean> nameListIterator = nameList.iterator();


    sheet.autoSizeColumn(5);

    int i=5;
    HSSFRow row = null;


    while(nameListIterator.hasNext())
    {
        Bean bean = nameListIterator.next();

        row = sheet.createRow(i);
        row.createCell(4).setCellValue(bean.getName());


        row.createCell(5).setCellValue(bean.getMailId());
        i++;
    }
Run Code Online (Sandbox Code Playgroud)

arraylist如下:

List<Bean> beanList = new ArrayList<Bean>();
    beanList.add(new Bean("Amy","g@y.comrtyrtyrtyrtyrtyr"));
    beanList.add(new Bean("Joan","p@y.comrtyrtyrtyrtyrtyr"));
    beanList.add(new Bean("Megan","r@y.comrtyrtyrtyrtyrtyr"));
    beanList.add(new Bean("Joe","m@y.comrtyrtyrtyrtyrtyr"));
    beanList.add(new Bean("Febi","j@y.comrtyrtyrtyrtyrtyr"));
Run Code Online (Sandbox Code Playgroud)

生成Excel工作表时,该列不能正确匹配内容的大小.我搜索了谷歌相关的这个问题并找到了

sheet.autoSizeColumn(5);

是我的问题的解决方案.我在上面的代码中添加了,但问题仍然存在.我正确使用它吗?

还有其他解决方案吗?

请帮忙

提前致谢

Ps:我正在使用Apache Poi 3.6

Bil*_*ard 52

你只需要将呼叫转移到

sheet.autoSizeColumn(5);
Run Code Online (Sandbox Code Playgroud)

添加数据代码中的某个点,因此在while循环应该正常工作之后.