【问题标题】:autosizeColumn() method error in apache-poiapache-poi 中的 autosizeColumn() 方法错误
【发布时间】:2013-04-25 05:18:44
【问题描述】:

我无法使用 autosizecolumn()。 实际上,尽管我将所有数据都打印在 xls 文件上,但我没有找到在哪里编写此 autosizecolumn() 方法,现在我唯一的要求是设置 autosizecolumn。

我在左上角和右上角的公司徽标和两者下方的表格数据上都使用了 addmergeredregion。

对于列标题

                   short mainrow=10;


                        row=sheet.createRow(mainrow);
                        cell= row.createCell((short)0);
                        cell.setCellValue(new HSSFRichTextString("Sr.No."));
                        cell.setCellStyle(header);

                        sheet.autoSizeColumn((short)0);                 

                        cell= row.createCell((short)1);
                        cell.setCellValue(new HSSFRichTextString("Town_Code"));
                        cell.setCellStyle(header);

                        cell= row.createCell((short)2);
                        cell.setCellValue(new HSSFRichTextString("Town_Name"));
                        cell.setCellStyle(header);

                        cell= row.createCell((short)3);
                        cell.setCellValue(new HSSFRichTextString("State_Name"));
                        cell.setCellStyle(header);

                        cell= row.createCell((short)4);
                        cell.setCellValue(new HSSFRichTextString("Country_Name"));
                        cell.setCellStyle(header);

将数据填入 XLS

                        short cellnum;
                        Integer srno=1;
                        for(Town town : townList){
                        row=sheet.createRow(++mainrow);
                        cellnum=0;
                        cell= row.createCell(cellnum++);
                        cell.setCellValue(srno++);
                        cell.setCellStyle(dataformat);

                        cell= row.createCell(cellnum++);
                        cell.setCellValue(new HSSFRichTextString(town.getTownCode()));
                        cell.setCellStyle(dataformat);
                        cell= row.createCell(cellnum++);
                        cell.setCellValue(new HSSFRichTextString(town.getName()));
                        cell.setCellStyle(dataformat);
                        cell= row.createCell(cellnum++);
                        cell.setCellValue(new HSSFRichTextString(town.getStateName()));
                        cell.setCellStyle(dataformat);
                        cell= row.createCell(cellnum++);
                        cell.setCellValue(new HSSFRichTextString(town.getCountryName()));
                        cell.setCellStyle(dataformat);

                        }

                        workbook.write(reportOutBuffer);
                        reportOutBuffer.close();
                        printNewReport(request, resp, reportOutBuffer.toByteArray(), "application/xls" ,"Town_Report_2013.");

【问题讨论】:

    标签: jsf apache-poi icefaces


    【解决方案1】:

    在数据写入工作表后调用autoSizeColumn(); 很重要。我会在FileOutputStream out = ... 通话之前将其包括在内。与之前的答案一样,自动调整大小将占用大量缓冲区空间,不应在大型工作表或对数据的 SQL 调用上使用。最好手动定义columnSize。例如:

    sheet.setColumnSize(0, 10*256);
    

    第一个数字是列号,第一列为零。列宽以字符宽度的 1/256 计算。

    【讨论】:

      【解决方案2】:

      如果你在最后写 autosizecoloumn() 会更好,这样以后单元格就不会更新了。如果不清楚,就写在workbook.write方法之前。应该是这样的。

          sheet.autoSizeColumn(colNum);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-22
        • 2013-06-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多