3

既存のExcelファイルを編集するためにjxlapiを使用しています。しかし、新しい列を追加してシートを書き込もうとすると、nullポインター例外が表示されます。私が使用しているコードは次のとおりです。

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

おそらく、使用している API は最適なものではありません。この問題 (insertcolumn 行での nullpointer 例外) もあり、 jexcelapi をダウンロードするまで解決策が見つかりませんでした。

HTH

于 2012-09-26T10:19:33.993 に答える
2

上記のコードは、私のコンピューターで正常に実行できます。例外情報を教えて、コード全体をここに置いてください。

于 2012-05-09T07:40:01.357 に答える
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); しかし、jxl を使用していたときの問題であった、すべてのオートフィルターの多くのフォーマットが失われます。

素晴らしい例はこちら http://poi.apache.org/spreadsheet/quick-guide.html http://www.kodejava.org/browse/49.html

于 2013-04-05T12:20:33.070 に答える