是否可以使用预configuration的sorting和过滤来创buildXLSX文档?

我们有一个networking工具,向用户显示数据表,并让他们a)将其导出到XSLX和b)对网页上的表格进行sorting和过滤。 我们希望导出的电子表格包含所有的数据,但是在filter(最好是sorting)configuration为在导出时镜像网页上的select。

我们使用as_xlsx直接从Oracle导出数据,但我们愿意考虑更复杂的方法。 我已经看了Apache POI,我不知道它是否可以做我们想要的。 除此之外,Java家族中的某些东西更可取。 XLSX导出是必须的,并且这些文件应该在Windows上的Excel中无警告地打开。

这可能吗? 如果是这样,是否有软件,使它很容易?

这是可能的Apache Poi 。 例:

final Date FILTER_DATE = /* ... */; XSSFWorkbook workbook = new XSSFWorkbook(); XSSFSheet sheet = workbook.createSheet(); // Insert data for(int rownum = 0; rownum < 100; rownum++){ XSSFRow row = sheet.createRow(rownum); String name = /* ... */; Date birthDate = /* ... */; row.createCell(0).setCellValue(name); row.createCell(1).setCellValue(birthDate); // Manually filter if ( ! ( (name.equals("Alice")) && (DateUtil.getExcelDate(birthDate >= DateUtil.getExcelDate(FILTER_DATE)) )) { row.getCTRow().setHidden(true); } } // Create filters sheet.setAutoFilter(CellRangeAddress.valueOf("A1:C100")); CTAutoFilter autoFilter = sheet.getCTWorksheet().getAutoFilter(); CTFilterColumn nameFilterColumn = autoFilter.insertNewFilterColumn(0); nameFilterColumn.setColId(0L); CTFilter nameFilter = nameFilterColumn.addNewFilters().insertNewFilter(0); nameFilter.setVal("Alice"); CTFilterColumn dateFilterColumn = autoFilter.insertNewFilterColumn(0); dateFilterColumn.setColId(2L); CTCustomFilter dateFilter = dateFilterColumn.addNewCustomFilters().addNewCustomFilter(); dateFilter.setOperator(STFilterOperator.GREATER_THAN_OR_EQUAL); dateFilter.setVal(Double.toString(DateUtil.getExcelDate(FILTER_DATE))); workbook.write(System.out);