POI生成excel并设置过滤范围

package com.xiaobu.poi;

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.util.CellReference;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFColor;

import java.awt.Color;
import java.io.FileOutputStream;

/**  1048576  设置excel筛选的  SXSSFWorkbook的最大100w  生成的表格边框有效(过时方法)
 */
public class TestExcel {
    public static void main(String[] args) throws Throwable {
        // keep 100 rows in memory, exceeding rows will be flushed to disk
        Workbook wb = new SXSSFWorkbook(100);
        Sheet sh = wb.createSheet();
        for(int rownum = 0; rownum < 10; rownum++){
            Row row = sh.createRow(rownum);
            for(int cellnum = 0; cellnum < 10; cellnum++){
                Cell cell = row.createCell(cellnum);
				XSSFCellStyle xssfCellStyle = (XSSFCellStyle) wb.createCellStyle();
				xssfCellStyle.setFillForegroundColor(new XSSFColor(Color.YELLOW));
				xssfCellStyle.setFillPattern(CellStyle.SOLID_FOREGROUND);
				xssfCellStyle.setBorderLeft(XSSFCellStyle.BORDER_THIN);
				xssfCellStyle.setBorderRight(XSSFCellStyle.BORDER_THIN);
				xssfCellStyle.setBorderBottom(XSSFCellStyle.BORDER_THIN);
				xssfCellStyle.setBorderTop(XSSFCellStyle.BORDER_THIN);
				cell.setCellStyle(xssfCellStyle);
				//设置过滤范围
				CellRangeAddress cellRangeAddress=	CellRangeAddress.valueOf("A1:R1");
				//设置过滤
				sh.setAutoFilter(cellRangeAddress);
               // System.out.println(new CellReference(cell) );//org.apache.poi.ss.util.CellReference [A1]
                //  'A1'
                String address = new CellReference(cell).formatAsString();
                cell.setCellValue(address);
            }
        }
        FileOutputStream out = new FileOutputStream("E:/sxssf.xlsx");
        System.out.println(123);
        wb.write(out);
        out.close();
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值