List of usage examples for org.apache.wicket.extensions.markup.html.repeater.data.table.export IExportableColumn getDisplayModel
IModel<String> getDisplayModel();
From source file:org.wicketstuff.poi.datatable.export.AbstractExcelDataExporter.java
License:Apache License
/** * Exports data to a Excel {@link Workbook}. * * @param <T> The type of each row in the exported data. * @param dataProvider The {@link IDataProvider} from which the row data is retrieved. * @param columns A {@link List} of {@link IExportableColumn}s which can be exported. * @param outputStream The {@link OutputStream} to which the exported spreadsheet will be written. * @throws IOException If an error occurs while exporting the data. */// w w w . j av a 2 s . c o m @Override public <T> void exportData(IDataProvider<T> dataProvider, List<IExportableColumn<T, ?>> columns, OutputStream outputStream) throws IOException { Workbook workbook = createWorkbook(); Sheet sheet = workbook.createSheet(); int rowNumber = 0; Row row = sheet.createRow(rowNumber); rowNumber++; int columnNumber = 0; for (IExportableColumn<T, ?> column : columns) { Cell cell = row.createCell(columnNumber); IModel<String> headerModel = column.getDisplayModel(); if (headerModel != null) { String header = headerModel.getObject(); populateHeaderCell(cell, header, columnNumber, column, workbook); } else { populateHeaderCell(cell, null, columnNumber, column, workbook); } columnNumber++; } Iterator<? extends T> it = dataProvider.iterator(0, dataProvider.size()); while (it.hasNext()) { T rowObject = it.next(); IModel<T> rowModel = dataProvider.model(rowObject); row = sheet.createRow(rowNumber); rowNumber++; columnNumber = 0; for (IExportableColumn<T, ?> column : columns) { Cell cell = row.createCell(columnNumber); // rowNumber - 1 because populateCell(cell, rowModel, column, rowNumber - 1, columnNumber, workbook); columnNumber++; } } workbook.write(outputStream); }