poi excel最大行、最大列等限制

POI,针对不同的Excel版本,使用enum SpreadsheetVersion定义了各自的约束。

见,poi源码:

package org.apache.poi.ss;

import org.apache.poi.ss.util.CellReference;

/**
 * This enum allows spreadsheets from multiple Excel versions to be handled by the common code.
 * <p>Properties of this enum correspond to attributes of the <i>spreadsheet</i> that are easily
 * discernable to the user.  It is not intended to deal with low-level issues like file formats.
 */
public enum SpreadsheetVersion {
    /**
     * Excel97 format aka BIFF8
     * <ul>
     * <li>允许的最大列数: 256 (2^8)</li>
     * <li>允许的最大行: 64k (2^16)</li>
     * <li>允许的公式个数: 30</li>
     * <li>条件格式化单元格的个数: 3</li>
     * <li>样式个数: 4000</li>
     * <li>单元格内容的最大长度: 32767</li>
     * </ul>
     */
    EXCEL97(0x10000, 0x0100, 30, 3, 4000, 32767),

    /**
     * Excel2007
     *
     * <ul>
     * <li><span style="font-family: Arial, Helvetica, sans-serif;">允许的最大列数:</span>16K (2^14)</li>
     * <li>允许的最大行数: 1M (2^20)</li>
     * <li>允许的公式个数: 255</li>
     * <li>条件格式化单元格的个数:不受限
     * (受限于Excel的可用内存)</li>
     * <li>样式的个数: 64000</li>
     * <li>单元格内容的最大长度: 32767</li>
     * <ul>
     */
    EXCEL2007(0x100000, 0x4000, 255, Integer.MAX_VALUE, 64000, 32767);

    private final int _maxRows;
    private final int _maxColumns;
    private final int _maxFunctionArgs;
    private final int _maxCondFormats;
    private final int _maxCellStyles;
    private final int _maxTextLength;

 // .......其他代码.......
}


在使用POI操作Excel时,可以通过设置CellStyle的属性来设置间距。 具体操作步骤如下: 1. 获取Workbook对象。 2. 创建CellStyle对象。 3. 设置CellStyle的高和字体属性,其中高的单位是1/20个点。 ```java // 创建CellStyle对象 CellStyle cellStyle = workbook.createCellStyle(); // 设置高 cellStyle.setRowHeight((short) (20 * 20)); // 创建字体对象 Font font = workbook.createFont(); // 设置字体大小 font.setFontHeightInPoints((short) 12); // 设置字体 font.setFontName("宋体"); // 设置字体样式 font.setBoldweight(Font.BOLDWEIGHT_NORMAL); // 设置字体颜色 font.setColor(IndexedColors.BLACK.getIndex()); // 设置间距 font.setLineSpacing((short) 300); // 将字体应用到CellStyle cellStyle.setFont(font); ``` 4. 将CellStyle应用到需要设置间距的。 ```java // 获取Sheet对象 Sheet sheet = workbook.getSheetAt(0); // 获取第一 Row row = sheet.getRow(0); // 将CellStyle应用到第一 row.setRowStyle(cellStyle); ``` 完整示例代码如下: ```java import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.Font; import org.apache.poi.ss.usermodel.IndexedColors; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; public class PoiExcelSetRowSpacingDemo { public static void main(String[] args) throws IOException { // 创建Workbook对象 Workbook workbook = new HSSFWorkbook(); // 创建Sheet对象 Sheet sheet = workbook.createSheet("Sheet1"); // 创建Row对象 Row row = sheet.createRow(0); // 创建Cell对象 row.createCell(0).setCellValue("Hello World!"); // 创建CellStyle对象 CellStyle cellStyle = workbook.createCellStyle(); // 设置高 cellStyle.setRowHeight((short) (20 * 20)); // 创建字体对象 Font font = workbook.createFont(); // 设置字体大小 font.setFontHeightInPoints((short) 12); // 设置字体 font.setFontName("宋体"); // 设置字体样式 font.setBoldweight(Font.BOLDWEIGHT_NORMAL); // 设置字体颜色 font.setColor(IndexedColors.BLACK.getIndex()); // 设置间距 font.setLineSpacing((short) 300); // 将字体应用到CellStyle cellStyle.setFont(font); // 将CellStyle应用到第一 row.setRowStyle(cellStyle); // 保存Excel文件 FileOutputStream fos = new FileOutputStream("test.xls"); workbook.write(fos); fos.close(); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值