相关疑难解决方法(0)

Apache POI autoSizeColumn调整大小不正确

我在java中使用Apache POI来创建excel文件.我填写数据然后尝试自动调整每列,但是大小总是错误的(我认为一致).前两行总是(?)完全折叠.当我在excel中自动调整列时,它可以完美地工作.

没有写入空白单元格(我相信),调整大小是我做的最后一件事.

这是相关的代码:这是一个没有错误处理等的简化版本.

public static synchronized String storeResults(ArrayList<String> resultList, String file) {
    if (resultList == null || resultList.size() == 0) {
        return file;
    }
    FileOutputStream stream = new FileOutputStream(file);

    //Create workbook and result sheet
    XSSFWorkbook book = new XSSFWorkbook();
    Sheet results = book.createSheet("Results");

    //Write results to workbook
    for (int x = 0; x < resultList.size(); x++) {
        String[] items = resultList.get(x).split(PRIM_DELIM);

        Row row = results.createRow(x);
        for (int i = 0; i < items.length; i++) …
Run Code Online (Sandbox Code Playgroud)

java apache excel apache-poi

26
推荐指数
3
解决办法
4万
查看次数

如何加速apache POI中的自动调整列?

我使用以下代码来自动调整电子表格中的列:

for (int i = 0; i < columns.size(); i++) {
   sheet.autoSizeColumn(i, true);
   sheet.setColumnWidth(i, sheet.getColumnWidth(i) + 600);
}
Run Code Online (Sandbox Code Playgroud)

问题是,如果大型电子表格超过3000行,则每列自动调整大小需要10分钟以上.尽管如此,它对于小文档来说非常快.有什么能帮助自动化更快地工作吗?

java excel performance autosize apache-poi

22
推荐指数
1
解决办法
2万
查看次数

如何在apache POI中自动调整excel中的列

我正在使用apache poi创建一个excel文件,生成excel但我无法根据单元格值调整列我发布代码到目前为止我所做的

这就是我在excel中创建标题的方法

HSSFWorkbook wb = new HSSFWorkbook();
        HSSFSheet sheet = wb.createSheet();
        sheet.protectSheet("password");
        sheet.autoSizeColumn(15);
        HSSFFont hSSFFont = wb.createFont();
        hSSFFont.setFontName(HSSFFont.FONT_ARIAL);
        hSSFFont.setFontHeightInPoints((short) 8);

        CellStyle style = wb.createCellStyle();
        /* cell style for locking */
        CellStyle lockedCellStyle = wb.createCellStyle();
        lockedCellStyle.setLocked(true);

        HSSFRow row = null;

        HSSFCell cell = null;

        row = sheet.createRow(0);
        int headercolumnNo = 0;



        //1st Column Header for Indicator
        cell = row.createCell(headercolumnNo);
        cell.setCellValue(new HSSFRichTextString(listOfActiveCarrierUserHeader.get(0)));
        style.setWrapText(true);
        style.setFillForegroundColor(IndexedColors.LIGHT_CORNFLOWER_BLUE.getIndex());
        style.setFont(hSSFFont);
        style.setFillPattern(CellStyle.SOLID_FOREGROUND);
        cell.setCellStyle(style);
        headercolumnNo = 1;

        cell = row.createCell(headercolumnNo);  //2nd Column Header for Firstname
        cell.setCellValue(new HSSFRichTextString(listOfActiveCarrierUserHeader.get(1)));
        style.setWrapText(true); …
Run Code Online (Sandbox Code Playgroud)

java excel apache-poi

3
推荐指数
1
解决办法
2万
查看次数

标签 统计

apache-poi ×3

excel ×3

java ×3

apache ×1

autosize ×1

performance ×1