国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

用Apache POI讀取Excel并下載

2019-11-08 03:01:20
字體:
來源:轉載
供稿:網友

POI提供API給java程序對Microsoft Office格式檔案讀和寫的功能。今天寫個讀取execl并下載的demo。

Demo

//使用POI,將數據轉換生成Excel(.xls格式)//1.創建一個新的空白工作簿ExcelHSSFWorkbook hssfWorkbook = new HSSFWorkbook();//2.在工作簿中創建一個新的工作表HSSFSheet sheet = hssfWorkbook.createSheet();//3.在工作表中創建第一行,作為標題行HSSFRow headRow = sheet.createRow(0);//給標題行的每一格寫入數據headRow.createCell(0).setCellValue("分區編號");headRow.createCell(1).setCellValue("區域編碼");headRow.createCell(2).setCellValue("關鍵字");headRow.createCell(3).setCellValue("起始號");headRow.createCell(4).setCellValue("結束號");headRow.createCell(5).setCellValue("單雙號");headRow.createCell(6).setCellValue("位置信息");//4.在工作表中寫入其他數據行,每一個分區對應一行數據for (Subarea subarea : subareaList) { HSSFRow subareaRow = sheet.createRow(sheet.getLastRowNum()+1);//從第二行開始寫入 subareaRow.createCell(0).setCellValue(subarea.getId()); subareaRow.createCell(1).setCellValue(subarea.getRegion().getId()); subareaRow.createCell(2).setCellValue(subarea.getAddresskey()); subareaRow.createCell(3).setCellValue(subarea.getStartnum()); subareaRow.createCell(4).setCellValue(subarea.getEndnum()); subareaRow.createCell(5).setCellValue(subarea.getSingle().toString()); subareaRow.createCell(6).setCellValue(subarea.getPosition());}//設置客戶端瀏覽器用于識別附件的兩個參數Content-Type和Content-Disposition//文件名String downloadFileName = "分區數據.xls";//獲取文件的MIME類型:String mimeType = ServletActionContext.getServletContext().getMimeType(downloadFileName);//將MIME類型放入響應ServletActionContext.getResponse().setContentType(mimeType);//瀏覽器類型String agent = ServletActionContext.getRequest().getHeader("user-agent");//附件名編碼,解決中文亂碼問題(用工具類)downloadFileName = FileUtils.encodeDownloadFilename(downloadFileName, agent);//獲取附件的名字和下載方式String contentDisposition = "attachment;filename="+downloadFileName;//將附件名字和下載方式放入響應頭信息中ServletActionContext.getResponse().setHeader("Content-Disposition", contentDisposition);//將Excel的文件流寫入到客戶端響應中hssfWorkbook.write(ServletActionContext.getResponse().getOutputStream());

解決瀏覽器兼容工具類

public class FileUtils { /** * 下載文件時,針對不同瀏覽器,進行附件名的編碼 * * @param filename * 下載文件名 * @param agent * 客戶端瀏覽器 * @return 編碼后的下載附件名 * @throws IOException */ public static String encodeDownloadFilename(String filename, String agent) throws IOException { if (agent.contains("Firefox")) { // 火狐瀏覽器 filename = "=?UTF-8?B?" + new BASE64Encoder().encode(filename.getBytes("utf-8")) + "?="; filename = filename.replaceAll("/r/n", ""); } else { // IE及其他瀏覽器 filename = URLEncoder.encode(filename, "utf-8"); filename = filename.replace("+"," "); } return filename; }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 万州区| 周至县| 乃东县| 诸暨市| 阜新| 岱山县| 兰考县| 涿州市| 宽甸| 柳河县| 西宁市| 东宁县| 平谷区| 龙江县| 长白| 澎湖县| 崇礼县| 老河口市| 惠来县| 讷河市| 拜城县| 德兴市| 宜兰县| 云梦县| 咸阳市| 伊宁县| 乌拉特后旗| 淳化县| 根河市| 庆安县| 康马县| 东港市| 镇平县| 郧西县| 石台县| 富顺县| 读书| 小金县| 田东县| 华蓥市| 江油市|