2013-05-10 107 views
0

有誰知道什麼可能是錯誤的以下過濾器我想爲apache POI生成的報告設置?在apache POI範圍內的自動過濾器不工作

我使用這個代碼:

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

爲了得到這樣的結果:

Filters applied

然而,當我點擊箭頭來篩選我的結果我還獲得了價值「平均「作爲下拉列表中的可能結果。

Filter list

有我丟失的東西嗎?

回答

2

只需在數據區域和頁腳行之間添加一行空行。 數據區域可能受到空行和列/標題的限制。

雖然您選擇了A4:A6,但只有A4被標記爲自動過濾器......我不確定,但我認爲,您只能通過VBA實現水平自動過濾。因此setAutoFilter應該是A4:B4,因爲您只標記標題而不標記數據區域。

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(); 
    } 
} 
(與POI 3.9,自由報辦公室4.0測試)
相關問題