3

XSSF を使用して Excel 2007 の apache poi を使用すると問題が発生します

以下に 2 つのコード スニペットを示します (太い指です)。ワークブックは Excel 2007 で正しく開き、いくつかの変更があるため、最初の方法は機能しているようです。

2 番目のコード スニペットを実行して Excel 2007 で開くと、読み取れないコンテンツに関するエラーが表示されます。確認ボックスをクリックすると、Excel がファイルを開きます。

2 番目のコード スニペットでこのエラーが発生するのはなぜですか? 唯一の違いは、2 行目 (ゼロ インデックス) から 2 行上にすべての行をシフトしようとしている 2 番目の行です...

私が本当にやりたいのは、いくつかのヘッダー行を削除することだけです。その後、ファイルからいくつかのフッター行を削除します。派手なことはしていません。私はAPIを誤解していると思いますが、しばらくの間これと戦ってきました。

何か案は?また、行をシフトするか、削除するか、または両方の組み合わせを行う必要がありますか?

String filename = "C:\\file.xlsx";
FileInputStream file = new FileInputStream( new File(fileName) );

XSSFWorkbook wb = new XSSFWorkbook(file);

XSSFSheet sheet = wb.getSheetAt(0);
int lastRow = sheet.getlastRow();

sheet.shiftRows(1, lastRow, -1);


file.close()
FileOutputStream out = new FileOutputStream(fileName);
wb.write(out);
out.flush();
out.close();

String filename = "C:\\file.xlsx";
FileInputStream file = new FileInputStream( new File(fileName) );

XSSFWorkbook wb = new XSSFWorkbook(file);

XSSFSheet sheet = wb.getSheetAt(0);
int lastRow = sheet.getlastRow();

sheet.shiftRows(2, lastRow, -2);


file.close()
FileOutputStream out = new FileOutputStream(fileName);
wb.write(out);
out.flush();
out.close();

編集:実際には、最初のスニペットも問題を引き起こしているようです...時々???? 私は何か間違ったことをしているという印象を受けています...何か提案はありますか?

4

1 に答える 1