Search in sources :

Example 1 with CTAutoFilter

use of org.xlsx4j.sml.CTAutoFilter in project com.revolsys.open by revolsys.

the class XlsxRecordWriter method close.

/**
 * Closes the underlying reader.
 */
@Override
public synchronized void close() {
    if (this.out != null) {
        try {
            final long fieldCount = this.recordDefinition.getFieldCount();
            final String ref = "A1:" + getRef(fieldCount, this.sheetRows.size());
            final TablePart tablePart = new TablePart();
            this.spreadsheetPackage.addTargetPart(tablePart);
            final CTTable table = smlObjectFactory.createCTTable();
            tablePart.setContents(table);
            table.setId(1);
            table.setName("Table1");
            table.setDisplayName(this.recordDefinition.getName());
            table.setRef(ref);
            final CTAutoFilter autoFilter = smlObjectFactory.createCTAutoFilter();
            autoFilter.setRef(ref);
            table.setAutoFilter(autoFilter);
            long columnIndex = 1;
            final CTTableColumns tableColumns = smlObjectFactory.createCTTableColumns();
            tableColumns.setCount(fieldCount);
            table.setTableColumns(tableColumns);
            final List<CTTableColumn> columns = tableColumns.getTableColumn();
            for (final String fieldName : this.recordDefinition.getFieldNames()) {
                final CTTableColumn column = smlObjectFactory.createCTTableColumn();
                column.setId(columnIndex);
                column.setName(fieldName);
                columns.add(column);
                columnIndex++;
            }
            final CTTableStyleInfo tableStyleInfo = smlObjectFactory.createCTTableStyleInfo();
            table.setTableStyleInfo(tableStyleInfo);
            tableStyleInfo.setName("TableStyleMedium14");
            tableStyleInfo.setShowFirstColumn(false);
            tableStyleInfo.setShowLastColumn(false);
            tableStyleInfo.setShowRowStripes(true);
            tableStyleInfo.setShowColumnStripes(false);
            this.sheet.addTargetPart(tablePart, "rId1");
            final Save save = new Save(this.spreadsheetPackage);
            save.save(this.out);
            try {
                this.out.flush();
            } catch (final IOException e) {
            }
        } catch (final Docx4JException e) {
            throw Exceptions.wrap(e);
        } finally {
            FileUtil.closeSilent(this.out);
            this.out = null;
            this.sheet = null;
            this.sheetData = null;
            this.spreadsheetPackage = null;
            this.sheetRows = Collections.emptyList();
        }
    }
}
Also used : CTTableColumns(org.xlsx4j.sml.CTTableColumns) CTAutoFilter(org.xlsx4j.sml.CTAutoFilter) CTTableStyleInfo(org.xlsx4j.sml.CTTableStyleInfo) TablePart(org.docx4j.openpackaging.parts.SpreadsheetML.TablePart) CTTablePart(org.xlsx4j.sml.CTTablePart) CTTable(org.xlsx4j.sml.CTTable) Save(org.docx4j.openpackaging.io3.Save) IOException(java.io.IOException) CTTableColumn(org.xlsx4j.sml.CTTableColumn) Docx4JException(org.docx4j.openpackaging.exceptions.Docx4JException)

Aggregations

IOException (java.io.IOException)1 Docx4JException (org.docx4j.openpackaging.exceptions.Docx4JException)1 Save (org.docx4j.openpackaging.io3.Save)1 TablePart (org.docx4j.openpackaging.parts.SpreadsheetML.TablePart)1 CTAutoFilter (org.xlsx4j.sml.CTAutoFilter)1 CTTable (org.xlsx4j.sml.CTTable)1 CTTableColumn (org.xlsx4j.sml.CTTableColumn)1 CTTableColumns (org.xlsx4j.sml.CTTableColumns)1 CTTablePart (org.xlsx4j.sml.CTTablePart)1 CTTableStyleInfo (org.xlsx4j.sml.CTTableStyleInfo)1