这个问题可能是因为在尝试写入数据之前,工作簿已经被关闭了。可以使用以下代码示例来解决这个问题:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
import java.io.IOException;
public class WriteExcelFile {
public static void main(String[] args) {
// 创建工作簿和工作表
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet1");
// 创建数据行并写入数据
Row row = sheet.createRow(0);
Cell cell = row.createCell(0);
cell.setCellValue("Hello, World!");
// 将工作簿写入文件
try (FileOutputStream outputStream = new FileOutputStream("output.xlsx")) {
workbook.write(outputStream);
} catch (IOException e) {
e.printStackTrace();
} finally {
// 关闭工作簿
try {
workbook.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
这个示例代码创建了一个工作簿和一个工作表,并在第一行第一列写入了数据。然后,使用FileOutputStream
将工作簿写入名为output.xlsx
的文件。最后,确保在写入数据后关闭工作簿,以避免出现java.io.IOException: 无法写入数据,文档似乎已经关闭
的错误。