package de.pbauerochse.worklogviewer.fx.tasks; import de.pbauerochse.worklogviewer.fx.tabs.WorklogTab; import de.pbauerochse.worklogviewer.util.FormattingUtil; import javafx.concurrent.Task; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import java.io.File; import java.io.FileOutputStream; /** * @author Patrick Bauerochse * @since 06.07.15 */ public class ExcelExporterTask extends Task<File> { private final WorklogTab tab; private final File targetFile; public ExcelExporterTask(WorklogTab tab, File targetFile) { updateTitle(tab.getText() + "-ExcelExport-Task"); this.tab = tab; this.targetFile = targetFile; } @Override protected File call() throws Exception { updateMessage(FormattingUtil.getFormatted("worker.excel.exporting")); updateProgress(0, 1); Workbook workbook = new HSSFWorkbook(); Sheet sheet = workbook.createSheet(tab.getText()); tab.writeDataToExcel(sheet); workbook.write(new FileOutputStream(targetFile)); updateProgress(1, 1); return targetFile; } }