JavaFx: экспортируйте TableView в Excel - PullRequest
0 голосов
/ 11 апреля 2020

У меня есть таблица с некоторыми данными, но я не могу экспортировать эту таблицу с именем столбца. Я пытался использовать ответы из этой темы c Вопрос , но это не сработало. Пожалуйста, помогите мне Может быть есть другие способы экспорта в другой формат: CSV или другой

package sample.Classes;
import javafx.scene.control.TableView;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import java.io.FileOutputStream;
import java.io.IOException;

public class ExportTableToExcel {

public static void exportTable(TableView<Variable> tableView) {

    HSSFWorkbook hssfWorkbook = new HSSFWorkbook();
    HSSFSheet hssfSheet = hssfWorkbook.createSheet("Sheet1");
    HSSFRow firstRow = hssfSheet.createRow(0);

    ///set titles of columns
    for (int i = 0; i < tableView.getColumns().size(); i++) {
        firstRow.createCell(i).setCellValue(tableView.getColumns().get(i).getText());
    }

    for (int row = 0; row < tableView.getItems().size(); row++) {
        HSSFRow hssfRow = ((HSSFSheet) hssfSheet).createRow(row + 1);
        for (int col = 0; col < tableView.getColumns().size(); col++) {
            Object celValue = tableView.getColumns().get(col).getCellObservableValue(row).getValue();
            try {
                if (celValue != null && Double.parseDouble(celValue.toString()) != 0.0) {
                    hssfRow.createCell(col).setCellValue(Double.parseDouble(celValue.toString()));
                }
            } catch (NumberFormatException e) {
                hssfRow.createCell(col).setCellValue(celValue.toString());
            }
        }
    }

    //save excel file and close the workbook
    try {
        hssfWorkbook.write(new FileOutputStream("WorkBook.xls"));
        hssfWorkbook.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...