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