我使用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();
}
}
答案 0 :(得分:0)
“在运行时关闭我的程序”
您的代码需要处理它。现在,它只是在任何一点(可能在那个循环中)被杀死,并且在那之后没有任何事情发生。 WriteableWorkbook
永远不会调用write()
或close()
,文件可能已损坏。
所以看看这个,尝试在不同的地方添加一些简单的输出,比如“得到行号XXX”。运行它,关闭它,看看它有多远。
您可能需要将大部分代码包装在try-catch-finally
中。循环在try
内,catch
处理从键盘上那个讨厌的人关闭的蓝色闪电程序,finally
关闭工作簿文件正常。