gpt4 book ai didi

java - 使用 XLSX Apache poi 的 Java 临时文件

转载 作者:行者123 更新时间:2023-12-02 12:20:07 24 4
gpt4 key购买 nike

.hi,我正在尝试创建一个临时 .xlsx 文件并使用 apache poi 写入它。我在创建工作簿时收到 EmptyFileException 。这是代码:

public class Writer{
File file;
public File Write(List<FormData> l, Class elementClass)
{

try {//create temp fiele here
file = File.createTempFile(elementClass.getSimpleName(),".xlsx");
} catch (IOException ex) {
Logger.getLogger(Writer.class.getName()).log(Level.SEVERE, null, ex);
}
XSSFWorkbook workbook;
XSSFSheet sheet;
if (file.exists()) {
FileInputStream inputStream;
try {
inputStream = new FileInputStream(file);
} catch (FileNotFoundException ex) {
throw new AspirinException(AspirinException.Type.INTERNAL_ERROR);
}
try {// this line gets error//
workbook = (XSSFWorkbook) WorkbookFactory.create(inputStream);
} catch (IOException | InvalidFormatException | EncryptedDocumentException ex) {
throw new AspirinException(AspirinException.Type.INTERNAL_ERROR);
}

//...

如果我使用真实的文件,它就可以正常工作。但对于临时文件它不起作用。请在这件事上给予我帮助。谢谢

最佳答案

创建新文件时,您不需要先创建文件,只需从新工作簿开始即可:

Workbook wb = new XSSFWorkbook();

然后使用 API 来填充它。最后你可以通过

将其写入新文件
try (OutputStream stream = new FileOutputStream(file)) {
wb.write(stream);
}

关于java - 使用 XLSX Apache poi 的 Java 临时文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45854588/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com