shiftRows в apache poi не работает - PullRequest
0 голосов
/ 02 марта 2011
InputStream inp = new FileInputStream("workbook.xls");
HSSFWorkbook wb = new HSSFWorkbook(inp);

String text="";
Sheet sheet1 = wb.getSheetAt(0);

for (Row row : sheet1) {
    for (Cell cell : row) {
        // Do something here
        ExcelExtractor extractor = new ExcelExtractor(wb);
        text=extractor.getText();
        System.out.print("text="+text);
    }
}
sheet1.shiftRows(0,sheet1.getLastRowNum(),1);

Я не получаю результат в моем листе Excel после вызова shiftrows.данные остаются прежними.Где я делаю это неправильно?

1 Ответ

1 голос
/ 02 марта 2011

Это потому, что ваша рабочая книга открыта только для чтения, поскольку она поступила из входного потока

InputStream inp = new FileInputStream("workbook.xls");

Чтобы получить результат, вам нужно записать новый объект рабочей книги в новую электронную таблицу xsl. Что-то вроде ...

File outWB = new File("workbook2.xls");
OutputStream out = new FileOutputStream(outWB);
wb.write(out);
out.flush();
out.close();

Вы можете сделать это с тем же файлом, но сначала вам нужно будет inp.close().

...