java excel模板中列表_java中自定义excel模板并且填充内容
場(chǎng)景
讀取某一份固定的excel模板,根據(jù)數(shù)據(jù)填充進(jìn)入指定的位置
本地測(cè)試時(shí),在本地resources下創(chuàng)建一個(gè)存放模板的位置
例:
實(shí)現(xiàn)
挺簡(jiǎn)單的就直接貼代碼吧,不得不吐槽一下博客園的編輯器真的很難用..
@Overridepublic void exportDeposit(UserInfo userInfo, Long id, HttpServletRequest request, HttpServletResponse response) throwsException {/*業(yè)務(wù)內(nèi)容*/
//excel模板路徑(分別是本地測(cè)試路徑和云上服務(wù)器路徑)
String file = this.getClass().getClassLoader().getResource("excel/zhck.xls").getFile();//String file = "/usr/local/wms_trade/zhck.xls";
File fi = newFile(file);
POIFSFileSystem fs= new POIFSFileSystem(newFileInputStream(fi));//讀取excel模板
HSSFWorkbook wb = newHSSFWorkbook(fs);//讀取了模板內(nèi)所有sheet內(nèi)容
HSSFSheet sheet = wb.getSheetAt(0);
sheet.setForceFormulaRecalculation(true);//在相應(yīng)的單元格進(jìn)行賦值//第11行 第6列,這是部分業(yè)務(wù)內(nèi)容,其實(shí)和本文關(guān)系不大,但是可以用來給需要的人參考,內(nèi)容是如何填入的,不過我更加建議去參考原生api
sheet.getRow(3).getCell(3).setCellValue(deposit.getType());if (deposit.getGmtDeposit() != null) {
sheet.getRow(3).getCell(1).setCellValue(deposit.getGmtDeposit().toString());
}
sheet.getRow(3).getCell(5).setCellValue(deposit.getDepositNumber());
sheet.getRow(3).getCell(7).setCellValue(deposit.getCreateName());
sheet.getRow(4).getCell(1).setCellValue(deposit.getDestination());/*業(yè)務(wù)內(nèi)容*/
//瀏覽器打開下載窗口
String fileName = deposit.getDepositNumber() + "出庫單.xls";
response.reset();
response.setCharacterEncoding("UTF-8");//Content-disposition 瀏覽器以下載的形式打開
String header = request.getHeader("User-Agent").toUpperCase();if (header.contains("MSIE") || header.contains("TRIDENT") || header.contains("EDGE")) {
fileName= URLEncoder.encode(fileName, "utf-8");
fileName= fileName.replace("+", "%20");
}else{
fileName= new String(fileName.getBytes(), "ISO8859-1");
}
response.setHeader("Content-Disposition", "attachment; filename=" +fileName);
response.setContentType("application/vnd.ms-excel");//直接用數(shù)組緩沖輸出流輸出
wb.write(response.getOutputStream());
}
留言
注釋里寫的挺明白的我個(gè)人覺得,只要看完應(yīng)該就可以操作了,
具體的如何填充內(nèi)容可以直接去搜索HSSFWorkbook,HSSFSheet,HSSFCellStyle,HSSFFont,HSSFRow,HSSFCell等API,
看過一輪就知道怎么使用了,上面也有部分例子可以參考
這個(gè)接口寫完以后,已經(jīng)可以直接用url訪問下載文件了,剩下的就得交給前端了(那塊我就不是很懂了)
如果掛在云服務(wù)器上的話,需要將模板也傳一份到自己制定的目錄,然后將文件路徑更改一下,才能使用
比如:
有更好的辦法歡迎留言
總結(jié)
以上是生活随笔為你收集整理的java excel模板中列表_java中自定义excel模板并且填充内容的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hybrid Astar 算法剖析和实现
- 下一篇: 机器人DH参数