未报告的例外。 必须被逮捕或宣布被抛出

所以我正在试图学习Apache的POI API,而且我对理解某些东西有点困难。 我正在尝试使用JFileChooser类打开现有的Excel文件,以便用户selectExcel文件,然后以特定方式对其进行修改。 我有问题,但打开文件。 它不断给我这个错误:未报告的例外。 必须被捕获或被宣布被抛出在有XSSFWorkbook代码的行。 我的逻辑如下:

1)让用户使用JFileChooser类select他们想要修改的excel文件

2)创build一个新的工作簿和工作表,从选定的Excel文件中传输数据

3)修改数据

public class readInExcel { static void readExcel() throws IOException { JFileChooser fileChooser = new JFileChooser(); fileChooser.setCurrentDirectory(new File(System.getProperty("user.home"))); int returnVal = fileChooser.showOpenDialog(new JPanel()); if(returnVal == JFileChooser.APPROVE_OPTION) { File OGFile = fileChooser.getSelectedFile(); String fileName = "user.home.Desktop"; XSSFWorkbook wb = new XSSFWorkbook(OGFile); XSSFSheet sheet = wb.createSheet("FirstSheet"); } } 

未报告的exception错误意味着您正在调用可能引发exception并需要处理的方法。 在这种情况下,您需要将该方法放在try-catch块中以捕获exception或将其抛出,以便可以由其他方式处理。

道歉,我只是注意到你处理IOException。 另一个错误是RuntimeException。 从创buildXSSFWorkbook对象时引发此exception。 当您需要InputStreamOPCPackagetypes时,您在构造函数中放入的参数的types为File 。 只要像这样创build一个FileInputStream:

 InputStream is = new FileInputStream(OGFile); XSSFWorkbook wb = new XSSFWorkbook(is); 

那么你不应该有任何未处理/抛出的错误。