我有問題,2007年無法讀取內容(脂肪手指)。第一種似乎可行,因爲工作簿可以在Excel 2007中正確打開,並且有一些變化。Excel中使用2007年的Excel利用XSSF</p> <p>我有下面的兩段代碼在Apache POI使用Apache POI(.xlsx)格式
如果我運行第二個代碼片段,然後在Excel 2007中打開,我收到關於不可讀內容的錯誤。我必須點擊確認框,然後Excel打開我的文件。
爲什麼第二個代碼片段會導致此錯誤?唯一的區別是在第二個我試圖從第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();
編輯:其實這apears第一片段也造成一個問題...有時???? 我在印象中我做錯了什麼...有什麼建議嗎?
這是錯誤的,因爲你的代碼沒有正確編寫excel表格。你可能錯位一個單元格/行的位置。這種錯誤很常見。你需要驗證你的代碼,可能在這個方法中 - 'sheet.shiftRows(2,lastRow,-2);'。 – Lion 2013-02-13 15:36:02
我知道有什麼不對。我根本不明白爲什麼。 javadoc並沒有太多的說明,我也無法找到關於這個的文檔。 – Brian 2013-02-13 17:40:43
....當我看到發生了什麼「我」得到關於不可讀內容的錯誤,我必須點擊一個確認框,然後excel打開我的文件。「我已經說清楚了。這個問題可能與我的代碼一樣,已經建立。我已經發布了這個問題,希望有比我更多的經驗的人能夠認識到這個問題....此外,如果你閱讀這個問題,你會看到我不是在寫單元格/行,而是試圖從現有文件中刪除它們。 – Brian 2013-02-13 19:25:28