3

我正在使用 jxl api 来编辑现有的 excel 文件。但是当我尝试添加一个新列并编写工作表时,它显示空指针异常。我正在使用的代码如下所示:

File file = new File("d:\\test.xls");
Workbook workbook;
WritableWorkbook copy = null;
if (file.exists()) {

    try {
        workbook = Workbook.getWorkbook(file);
        copy = Workbook.createWorkbook(new File("C:\\TEMP\\temp.xls"),
                workbook);
    } catch (BiffException e) {

        e.printStackTrace();
    } catch (FileNotFoundException fnf) {
        fnf.printStackTrace();

    } catch (IOException e) {

        e.printStackTrace();
    }

}   
WritableSheet sheet = copy.getSheet(0);

sheet.insertColumn(2); //this statement causes error  
                      //if I comment it the code works fine

try {
    copy.write();
    copy.close();
}
catch(Exception e)
{

    e.printStackTrace();
}

请帮我解决这个问题并插入新列。

我能够成功编辑excel的单个单元格并写入文件。

4

4 回答 4

2

上面的代码可以在我的电脑上正常运行。最好把异常信息告诉我们,把整个代码放在这里。

于 2012-05-09T07:40:01.357 回答
2

您使用的 api 可能不是最好的。我也遇到了这个问题(在 insertcolumn 行出现空指针异常),直到我下载jexcelapi才找到任何解决方案。

高温高压

于 2012-09-26T10:19:33.993 回答
1

我们可以插入一个新单元格,从而像这样插入一个新行/列-

Workbook aWorkBook = Workbook.getWorkbook(new File("Originalfile.xls"));
        WritableWorkbook aCopy = Workbook.createWorkbook(new File("Originalfile.xls"), aWorkBook);
        WritableSheet aCopySheet = aCopy.getSheet(0);//index of the needed sheet
        WritableCell aWritableCell = aCopySheet.getWritableCell(1,1);//no need!
        jxl.write.Label anotherWritableCell =  new jxl.write.Label(1,12 ,"SUN");
                //position of the new cell in column,row
            //can be a new Label() or new Number() or new Formula

            aCopySheet.addCell(anotherWritableCell);

        aCopy.write();
        aCopy.close();

我不清楚 insertRow() 或 insertColumn() 方法的作用。希望能帮助到你!

于 2012-05-25T11:10:47.073 回答
0

使用jxl是不可能的,你必须使用apache poi http://poi.apache.org/ (或者如果有其他东西的话)

使用 jxl,您只能读取或编写工作簿,而不能编辑现有的工作簿。您还可以复制工作簿并编辑新创建的。WritableWorkbook newWorkbook = Workbook.createWorkbook(newFile, workbookTemplate, wbSettings); 但是你会失去很多格式化ald all AutoFilters,这是我在使用jxl时遇到的问题。

很好的例子在这里 http://poi.apache.org/spreadsheet/quick-guide.html http://www.kodejava.org/browse/49.html

于 2013-04-05T12:20:33.070 回答