繁体   English   中英

apache POI范围内的自动过滤器无法正常工作

[英]Autofilter in apache POI range not working

有谁知道我试图为使用apache POI生成的报告设置以下过滤器可能出现什么问题?

我正在使用此代码:

sheet.setAutoFilter(CellRangeAddress.valueOf("A4:A6"));

要获得此结果:

已应用过滤器

但是,当我单击箭头来过滤我的结果时,我也会在下拉列表中获得值“average”作为可能的结果。

过滤列表

这里有什么我想念的吗?

只需在数据区和页脚行之间添加一个空行。 数据区域可以由空行和列/标题限制。

虽然您选择了A4:A6 ,但只有A4被标记为自动过滤器...我不确定,但我认为,您只能通过VBA实现水平自动过滤。 所以setAutoFilter应该像A4:B4 ,因为你只标记标题而不是数据区域。

(使用POI 3.9,Libre Office 4.0测试)

import java.io.*;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.ss.util.*;

public class Autofilter {
    public static void main(String[] args) throws Exception {
        HSSFWorkbook wb = new HSSFWorkbook();
        HSSFSheet sheet = wb.createSheet();
        sheet.createRow(3).createCell(0).setCellValue("Protocol Number");
        sheet.createRow(4).createCell(0).setCellValue("DEMONNUMBER1");
        sheet.createRow(5).createCell(0).setCellValue("DEMONNUMBER2");
        sheet.createRow(6).setZeroHeight(true);
        sheet.createRow(7).createCell(0).setCellValue("Average");
        sheet.setAutoFilter(CellRangeAddress.valueOf("A4:B4"));
        FileOutputStream fos = new FileOutputStream("autofilter.xls");
        wb.write(fos);
        fos.close();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM