| | |
| | | if (needSetWidth) { |
| | | Map<Integer, Integer> maxWidthMap = cache.computeIfAbsent(writeSheetHolder.getSheetNo(), k -> new HashMap<>()); |
| | | int columnWidth = calculateWidth(cellDataList, cell, isHead); |
| | | if (columnWidth >= 16) { |
| | | columnWidth = 16; |
| | | } |
| | | if (columnWidth > 0) { |
| | | columnWidth = Math.min(columnWidth, 255); // 最大支持255字符 |
| | | if (columnWidth > maxWidthMap.getOrDefault(cell.getColumnIndex(), 0)) { |
| | | maxWidthMap.put(cell.getColumnIndex(), columnWidth); |
| | | writeSheetHolder.getSheet().setColumnWidth(cell.getColumnIndex(), columnWidth * 256); |
| | | writeSheetHolder.getSheet().setColumnWidth(cell.getColumnIndex(), columnWidth * 255); |
| | | } |
| | | } |
| | | } |
| | |
| | | return cellData.getStringValue().getBytes().length; |
| | | case NUMBER: |
| | | return cellData.getNumberValue().toString().getBytes().length; |
| | | case DATE: |
| | | return cellData.getDateValue().toString().getBytes().length; |
| | | default: |
| | | return -1; |
| | | } |