首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jxl中程序关闭时数据损坏

jxl中程序关闭时数据损坏
EN

Stack Overflow用户
提问于 2016-02-09 06:37:35
回答 1查看 197关注 0票数 1

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

代码语言:javascript
复制
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();
    }
}
EN

回答 1

Stack Overflow用户

发布于 2016-02-09 07:18:53

“在程序运行时将其关闭”

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

看到这一点,试着在不同的地方添加一些简单的输出,比如"got to line number XXX“。运行它,关闭它,看看它走了多远。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35280703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档