我正在尝试编写一个简单的程序来创建一个小应用程序,单击按钮会将值写入 Excel 电子表格。
在下面的代码中,程序会将值 25 写入单元格,然后打印“25.0”。然后它会在单击按钮时将 50 写入单元格并打印出“50.0”,但是一旦我关闭应用程序并打开电子表格,单元格内就会显示值 25。
package javafxapplication2;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import org.apache.poi.xssf.usermodel.*;
import java.io.*;
public class JavaFXApplication2 extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
XSSFWorkbook schedule = new XSSFWorkbook();
XSSFSheet firstSheet = schedule.createSheet("Dis a sheet");
XSSFRow firstRow = firstSheet.createRow(0);
XSSFCell firstCell = firstRow.createCell(0);
firstCell.setCellValue(25);
System.out.println(firstCell.getRawValue());
Button btn = new Button();
btn.setText("Say 'Hello World'");
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
writeInfoToCell(firstCell,50);
System.out.println(firstCell.getRawValue());
}
});
//});
FileOutputStream out = new FileOutputStream(new File("schedule.xlsx"));
schedule.write(out);
out.close();
StackPane root = new StackPane();
root.getChildren().add(btn);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}
public void writeInfoToCell(XSSFCell cell, int information){
cell.setCellValue(information);
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
}
有人可以帮我解决这个问题吗?它必须与单击按钮有关,因为如果我完全删除按钮,则值会正确写入单元格。
谢谢!
倚天杖
繁华开满天机
相关分类