zoukankan      html  css  js  c++  java
  • saiku导出excel单元格格式与中文列宽自动适应

    在saiku导出excel后打开发现单元格的整数也显示为小数,并且含有中文的列宽没有自动适应,解决办法如下:

    打开ExcelWorksheetBuilder.java文件,找到applyCellFormatting方法,看名字应该能猜到这个方法是设置单元格格式的,修改如下:

    if ((formatString != null) && (formatString.trim().length() > 0)) {
        省略部分代码...
    }else {
        //没有formatString的时候设置为常规单元格格式
          cell.setCellStyle(basicCS);
    }

    这样当没有设置formatString时单元格的格式为常规格式。

    同样在ExcelWorksheetBuilder.java文件,找到finalizeExcelSheet方法,其中workbookSheet.autoSizeColumn(i)为自适应宽度,但这个方法无法识别中文,作如下修改:

    if (autoSize) {
          // Autosize columns
          for (int i=0; i < maxColumns && i < rowsetBody[0].length; i++) {
            workbookSheet.autoSizeColumn(i);        
            //设置中文列宽自适应
            int curColWidth = workbookSheet.getColumnWidth(i)/256;
            for (int rowNum = 0; rowNum < workbookSheet.getLastRowNum(); rowNum++) {
                Row currentRow;  
                //当前行未被使用过  
                if (workbookSheet.getRow(rowNum) == null) {  
                    currentRow = workbookSheet.createRow(rowNum);  
                } else {  
                    currentRow = workbookSheet.getRow(rowNum);  
                }
                if (currentRow.getCell(i) != null) {
                    Cell currentCell = currentRow.getCell(i);
                    if (currentCell.getCellType() == HSSFCell.CELL_TYPE_STRING) {
                        int length = currentCell.getStringCellValue().getBytes().length;
                        if (curColWidth < length) {  
                            curColWidth = length;  
                        }
                    }
                }
            }        
            workbookSheet.setColumnWidth(i,curColWidth*256);
          }      
        }

    这样即使有中文也能自适应列宽。

  • 相关阅读:
    001-导航条悬浮顶部
    000-导航栏单击事件背景变换
    1-MySQL命令行
    了解CentOS服务器的基本信息
    SecureCRT配色
    SecureCRT中文显示乱码
    Android Studio 1.1 使用介绍及导入 jar 包和第三方依赖库
    Android Json 解析
    不断更新中 书签
    Android 常用的权限
  • 原文地址:https://www.cnblogs.com/Jason-Xiang/p/5151820.html
Copyright © 2011-2022 走看看