未报告的异常。必须被抓住或宣布被抛出
Unreported Exception. Must be caught or declared to be thrown
所以我正在尝试学习 Apache 的 POI API,但我在理解某些东西时遇到了一些困难。我正在尝试使用 JFileChooser class 打开现有的 Excel 文件,以便用户 select 访问 Excel 文件,然后我将以某种方式修改它.我在打开文件时遇到问题。它一直给我这个错误:未报告的异常。必须在具有 XSSFWorkbook 代码的行捕获或声明抛出。我的逻辑是这样的:
1) 让用户 select 使用 JFileChooser Class
要修改的 excel 文件
2) 创建一个新工作簿并sheet 传输所选 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");
}
}
Unreported Exception Error 意味着您正在调用一个可能会抛出异常并需要处理的方法。在这种情况下,您需要将该方法放在 try-catch 块周围以捕获异常或抛出它以便它可以由其他东西处理。
抱歉,我刚刚注意到您处理了 IOException。您遇到的另一个错误是 RuntimeException。当您创建 XSSFWorkbook 对象时会抛出此异常。当需要 InputStream
或 OPCPackage
类型时,您放入构造函数的参数是 File
类型。只需像这样创建一个 FileInputStream:
InputStream is = new FileInputStream(OGFile);
XSSFWorkbook wb = new XSSFWorkbook(is);
那么你应该不会再有 unhandled/thrown 错误了。
所以我正在尝试学习 Apache 的 POI API,但我在理解某些东西时遇到了一些困难。我正在尝试使用 JFileChooser class 打开现有的 Excel 文件,以便用户 select 访问 Excel 文件,然后我将以某种方式修改它.我在打开文件时遇到问题。它一直给我这个错误:未报告的异常。必须在具有 XSSFWorkbook 代码的行捕获或声明抛出。我的逻辑是这样的:
1) 让用户 select 使用 JFileChooser Class
要修改的 excel 文件2) 创建一个新工作簿并sheet 传输所选 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");
}
}
Unreported Exception Error 意味着您正在调用一个可能会抛出异常并需要处理的方法。在这种情况下,您需要将该方法放在 try-catch 块周围以捕获异常或抛出它以便它可以由其他东西处理。
抱歉,我刚刚注意到您处理了 IOException。您遇到的另一个错误是 RuntimeException。当您创建 XSSFWorkbook 对象时会抛出此异常。当需要 InputStream
或 OPCPackage
类型时,您放入构造函数的参数是 File
类型。只需像这样创建一个 FileInputStream:
InputStream is = new FileInputStream(OGFile);
XSSFWorkbook wb = new XSSFWorkbook(is);
那么你应该不会再有 unhandled/thrown 错误了。