gpt4 book ai didi

java - jxl 中程序关闭时数据损坏

转载 作者:太空宇宙 更新时间:2023-11-04 12:57:13 24 4
gpt4 key购买 nike

我使用 jxl 将用户输入的数据存储到 Excel 电子表格中。我希望能够在程序运行时关闭程序并打开 Excel 电子表格并查看数据。每当我这样做时,我都会收到一条消息,指出它的格式与文件扩展名中指定的格式不同。这是我的代码。

import java.io.File;
import java.io.IOException;
import java.util.Scanner;

import jxl.*;
import jxl.write.*;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import jxl.write.Number;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;

public class ReadWriteTest
{
public static void main(String[] args) throws BiffException, IOException, RowsExceededException, WriteException
{
Scanner scan = new Scanner(System.in);

int i = 1;

Integer iAlliance = -1;

File test = new File("C:\\test.xls");

WritableWorkbook wb = Workbook.createWorkbook(test);

while(iAlliance != 0 && i != 5)
{
WritableSheet sheet = wb.createSheet("Sheet" + i, i);

iAlliance = scan.nextInt();

WriteExcel.addNumber(sheet, 0, 0, iAlliance);

iAlliance = scan.nextInt();

WriteExcel.addNumber(sheet, 1, 0, iAlliance);

i++;
}
wb.write();
wb.close();
}
}

最佳答案

“在程序运行时关闭它”

你的代码需要处理这个问题。现在,它在任何时候都会被杀死(可能在那个循环中),并且在那之后不会发生任何事情。 WriteableWorkbook 永远不会调用 write()close(),并且文件可能已损坏。

所以看到这个,尝试在不同的地方添加一些简单的输出,比如“到达行号 XXX”。运行它,关闭它,看看它走了多远。

您可能需要将大部分代码包装在 try-catch-finally 中。循环位于 try 内部,catch 处理从键盘上那个讨厌的人那里突然关闭的程序,finally 正确地关闭工作簿文件。

关于java - jxl 中程序关闭时数据损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35280703/

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