use of eu.ggnet.dwoss.util.FileJacket in project dwoss by gg-net.
the class CustomerExporterTryout method main.
public static void main(String[] args) throws IOException, InterruptedException {
CustomerGenerator gen = new CustomerGenerator();
FileJacket fj = CustomerExporterOperation.toXls(IntStream.range(0, 40).mapToObj(i -> gen.makeOldCustomer()).collect(Collectors.toList()));
Desktop.getDesktop().open(fj.toTemporaryFile());
Thread.sleep(6000);
}
use of eu.ggnet.dwoss.util.FileJacket in project dwoss by gg-net.
the class TableToExcelExporter method export.
/**
* Export a JTable view to a temporary .xls file.
* Supported cell renderer:<ol>
* </ol>
* <p/>
* @param table
* @param fileName
* @return
* @throws de.dw.util.UserInfoException
*/
public static FileJacket export(JTable table, String fileName) throws UserInfoException {
int visibleRowCount = table.getRowCount();
if (visibleRowCount < 1)
throw new UserInfoException("Die Tabelle enthält keine Daten.");
int columnCount = table.getColumnCount();
TableModel model = table.getModel();
List<Object[]> rows = new ArrayList<>();
for (int i = 0; i < visibleRowCount; i++) {
Object[] row = new Object[columnCount + 1];
for (int j = 0; j < columnCount; j++) {
// convert value of table to specified value
Object value = model.getValueAt(table.convertRowIndexToModel(i), table.convertColumnIndexToModel(j));
if (value instanceof Date) {
row[j] = SimpleDateFormat.getDateInstance(SimpleDateFormat.SHORT, Locale.GERMANY).format(value);
continue;
}
// check for enums with getNote() or getName() via PojoUtil reflection
if (value instanceof Enum) {
try {
row[j] = PojoUtil.getValue("note", value);
continue;
} catch (RuntimeException e) {
try {
row[j] = PojoUtil.getValue("name", value);
continue;
} catch (RuntimeException ex) {
}
}
}
row[j] = value;
}
rows.add(row);
}
STable sTable = new STable();
for (int i = 0; i < columnCount; i++) {
int width = table.getColumnModel().getColumn(i).getWidth();
sTable.add(new STableColumn(table.getColumnName(i), width / 5));
}
sTable.setModel(new STableModelList(rows));
CCalcDocument cdoc = new TempCalcDocument(fileName);
cdoc.add(new CSheet("Sheet1", sTable));
File file = LucidCalc.createWriter(LucidCalc.Backend.XLS).write(cdoc);
return new FileJacket(fileName, ".xls", file);
}
Aggregations