所以我正在尝试学习Apache的POI API,而且我对理解某些东西有点困难。我尝试使用JFileChooser类打开现有的Excel文件,以便用户选择Excel文件,然后我将以某种方式修改它。我在打开文件时遇到问题。它一直给我这个错误:未报告的异常。必须被捕获或声明被抛出到具有XSSFWorkbook代码的行。我的逻辑如下:
1)让用户使用JFileChooser类选择要修改的excel文件
2)创建一个新的工作簿和工作表以从所选的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");
}
}
答案 0 :(得分:2)
未报告的异常错误意味着您正在调用可能抛出异常并需要处理的方法。在这种情况下,您需要将该方法放在try-catch块周围以捕获异常或抛出它以便可以通过其他方式处理它。
道歉,我刚刚注意到你处理了IOException。您获得的另一个错误是RuntimeException。从创建XSSFWorkbook对象时抛出此异常。当您需要类型File
或InputStream
时,您在构造函数中放置的参数的类型为OPCPackage
。只需像这样创建一个FileInputStream:
InputStream is = new FileInputStream(OGFile);
XSSFWorkbook wb = new XSSFWorkbook(is);
然后你不应再有任何未处理/抛出的错误。