Java對excel中的sheet進行拷貝


近段時間做一個excel的導出功能,在網上查詢了很多方法,發現都很難解決我目前的困難,偶爾查詢到POI修改sheetname這個問題,有了解決方法

以下為參考鏈接及本人部分代碼

參考地址:https://blog.csdn.net/qq_42835445/article/details/87981861

如有侵權,請聯絡刪除,謝謝

部分代碼及注釋:

//因為有excel模板,但又不想直接在模板上進行操作,所以先獲取文件流信息,模板為xlsx,請自行修改

//使用文件路徑讀入文件流,因為我的是模板,我是知道路徑的

FileInputStream fis = new FileInputStream("src/main/resources/template/ScheduleModel.xlsx");

//創建一個新的excel並讀入文件流,讀取之后記得關閉流

XSSFWorkbook wk = new XSSFWorkbook(fis);
fis.close();

// 模板內容已經寫入了新建的excel,第一個sheet為模板sheet
XSSFSheet fromsheet = wk.getSheetAt(0);

// 新表創建sheet
XSSFSheet sheet = null;
XSSFRow row = null;

//之后就是新文件之內的sheet操作了,要根據模板sheet創建新sheet,直接克隆就可以了

int sheetNum = 1;

sheet = wk.cloneSheet(0);//克隆第一個sheet,因為我后續要對克隆的sheet直接進行操作,所以就直接這樣寫了
sheetNum++;//獲取sheet頁數量,也可以使用原生方法int sheetNum = wk.getNumberOfSheets();
wk.setSheetName(sheetNum-1, sheetname);//修改新生成的sheet頁名稱

 

以上就是代碼部分了,可以自行追加邏輯來確認是否克隆新的sheet,

 

這個方法比起字節流一行一行讀方便很多,唯一的問題是沒辦法對內容進行篩選。

但如果僅是對模板進行操作,這種方法是我找到的最方便的了,如果有其他方案,可以發給我,謝謝。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM