【发布时间】:2019-08-10 22:47:20
【问题描述】:
我正在尝试保存并关闭已成功打开但由于某种原因无法保存和关闭的现有工作簿:
//declarations etc here...
try {
InputStream ExcelFileToRead = new FileInputStream(file);
XSSFWorkbook wb = new XSSFWorkbook(ExcelFileToRead);
//XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream(new File(file)));
XSSFSheet sheet = wb.getSheetAt(0);
XSSFRow row;
XSSFCell cell;
int rows;
rows = sheet.getPhysicalNumberOfRows();
int cols = 1;
XSSFRichTextString path;
String stpath;
try {
if(!Desktop.isDesktopSupported()){
System.out.println("Error: Desktop is not supported");
}
Desktop desktop = Desktop.getDesktop();
if(filee.exists()) desktop.open(filee);
FileOutputStream out = new FileOutputStream(file);
wb.write(out);
out.close();
//code continues...
wb.write(out) 成功打开文件。我已经阅读了大量的posts/articles/docs 都使用close() 方法来关闭XSSF Excel 文件,但它在这里不起作用。
我该如何解决这个问题?
【问题讨论】:
-
你怎么知道它“不起作用”,“不起作用”是什么意思?
//declarations etc here...为什么你认为这些对于理解你的问题没有必要?例如,file和filee是什么?请访问help center,转至tour,尤其是阅读How to Ask,了解如何有效使用本网站。 -
您好,很抱歉,无论如何下面的人都明白了问题所在,所以代码足够了。无论如何,只是为了进一步说明,filee 和 file 是同一个 Excel 文件的相同路径。只是 filee 是一个文件对象,而 file 是一个字符串。我尝试同时使用这两种方法来解决问题,但问题是我只能使用与现有文件不同的路径进行保存和关闭,如下面的 Jim Garrison 所述。
标签: java excel apache apache-commons xssf