web-dev-qa-db-ja.com

Apache poiを使用する場合、Excelのセルサイズをコンテンツのサイズに合わせる際の問題

私はApache POI apiの初心者です。 arraylistを使用してExcelシートを作成しようとしています。

My 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++;
    }

Arraylistは次のとおりです。

List<Bean> beanList = new ArrayList<Bean>();
    beanList.add(new Bean("Amy","[email protected]"));
    beanList.add(new Bean("Joan","[email protected]"));
    beanList.add(new Bean("Megan","[email protected]"));
    beanList.add(new Bean("Joe","[email protected]"));
    beanList.add(new Bean("Febi","[email protected]"));

Excelシートが生成されるとき、列はコンテンツのサイズに正しく適合しません。この問題に関連するGoogleを検索して見つけた

sheet.autoSizeColumn(5);

私の問題の解決策です。上記のコードのように追加しましたが、それでも問題は解決しません。正しく使用していますか?

他の解決策はありますか?

助けてください

前もって感謝します

追伸:Apache Poi 3.6を使用しています

23
mvg

あなただけに呼び出しを移動する必要があります

sheet.autoSizeColumn(5);

コード内のポイントにafterデータが追加されているため、whileループの直後に機能します。

52
Bill the Lizard