zoukankan      html  css  js  c++  java
  • excel (2)

    ... poi 3.8

    import java.io.BufferedInputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.io.PrintWriter;
    import java.io.UnsupportedEncodingException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    import java.util.regex.Pattern;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipOutputStream;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletResponse;
    
    import org.apache.poi.hssf.usermodel.HSSFCell;
    import org.apache.poi.hssf.usermodel.HSSFCellStyle;
    import org.apache.poi.hssf.usermodel.HSSFFont;
    import org.apache.poi.hssf.usermodel.HSSFRow;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.ss.usermodel.CellStyle;
    import org.apache.poi.ss.util.CellRangeAddress;
    import org.apache.poi.ss.util.RegionUtil;
    
    /**
     * Excel 工具类
     * 
     * @author Administrator
     * 
     */
    public class ExcelUtil2 {
        //excel模板路径
        //private static final String baseExcelModelUrl = System.getProperty("catalina.home") + "/webapps/fszfbz_v1"; 
        private static final String baseExcelModelUrl = System.getProperty("catalina.home") + "/webapps/JZOA_V2/";
        
        /** 模板   **/
        
        /**
         * 复制excel模板
         * 
         * @throws FileNotFoundException
         * @throws IOException
         */
        public static HSSFWorkbook importExcellModel(String excelurl) throws FileNotFoundException, IOException {
            File file = new File(baseExcelModelUrl+excelurl);
            InputStream is = new FileInputStream(file);
            HSSFWorkbook wb = new HSSFWorkbook(is);
            return wb;
        }
        
        /**
         * 根据workbook并插入数据
         * @param modelName
         * @param dataArray
         * @param fieldName
         * @throws FileNotFoundException
         * @throws IOException
         */
        public static HSSFWorkbook createHSSFSheet(HSSFWorkbook wb,int sheetNum,int startRow,int startCol,List<Map<String,Object>> dataArray,String[] fieldName) throws FileNotFoundException, IOException{
            HSSFSheet sheet;
            HSSFCell cell;
                
            sheet = wb.getSheetAt(sheetNum);
            
            //导入数据
            int rowNum = startRow-2;
            sheet.shiftRows(rowNum+1, sheet.getPhysicalNumberOfRows(), dataArray.size());
            HSSFCellStyle cellStyle = getCellStyle(wb);
            
            int colNum = startCol-2;
            for (int i = 0; i < dataArray.size(); i++) {
                //数据
                Map<String, Object> dataMap = dataArray.get(i);
                //创建行
                HSSFRow row = sheet.createRow(++rowNum);
                //数据列
                for(int j=0;j<fieldName.length;j++){
                    cell = row.createCell(++colNum);
                    cell.setCellStyle(cellStyle);
                    if("序号".equals(fieldName[j])){//序号则输出相应序号
                        cell.setCellValue(i+1);
                        continue;
                    }
                    if("".equals(fieldName[j])){//字符串空则不填
                        continue;
                    }
                    Object cellValue = dataMap.get(fieldName[j]);
                    if(cellValue!=null){
                        cell.setCellValue(cellValue.toString());
                    }
                }
                colNum = startCol-2;
            }
            return wb;
        }
        
        public static HSSFWorkbook createHSSFSheet(HSSFWorkbook wb,int startRow,int startCol,List<Map<String,Object>> dataArray,String[] fieldName) throws FileNotFoundException, IOException{
            return createHSSFSheet(wb,0,startRow,startCol,dataArray,fieldName);
        }
        
        /**
         * 通过传入路径复制模板并设置数据
         */
        public static HSSFWorkbook createHSSFSheet(String modelPath,int sheetNum,int startRow,int startCol,List<Map<String,Object>> dataArray,String[] fieldName) throws FileNotFoundException, IOException{
            HSSFWorkbook wb = importExcellModel(modelPath);
            createHSSFSheet(wb,sheetNum,startRow,startCol,dataArray,fieldName);
            return wb;
        }
        /**
         *  
         * @param modelPath 路径
         * @param startRow
         * @param startCol 
         * @param dataArray 数据
         * @param fieldName 文件名称???
         * @return
         * @throws FileNotFoundException
         * @throws IOException
         */
        public static HSSFWorkbook createHSSFSheet(String modelPath,int startRow,int startCol,List<Map<String,Object>> dataArray,String[] fieldName) throws FileNotFoundException, IOException{
            HSSFWorkbook wb = importExcellModel(modelPath);
            createHSSFSheet(wb,0,startRow,startCol,dataArray,fieldName);
            return wb;
        }
        
        /** 获取指定内容,无则创建 **/
        
        /**
         * 获取指定行,若指定行未创建则创建
         * @param sheet
         * @param rowNum
         * @return
         */
        public static HSSFRow getHSSFRow(HSSFSheet sheet,Integer rowNum){
            HSSFRow row = sheet.getRow(rowNum); 
            if (row == null) { 
                row = sheet.createRow(rowNum); 
            }
            return row;
        }
        
        /**
         * 获取指定单元格,若指定单元格未创建则创建
         * @param sheet
         * @param rowNum
         * @return
         */
        public static HSSFCell getHSSFCell(HSSFSheet sheet,Integer rowNum,Integer colNum){
            HSSFRow row = getHSSFRow(sheet,rowNum); 
            HSSFCell cell = row.getCell(colNum);
            if (cell == null) { 
                cell = row.createCell(colNum);
            }
            return cell;
        }
        
        /**
         * 获取指定单元格,若指定单元格未创建则创建
         * @param sheet
         * @param rowNum
         * @return
         */
        public static HSSFCell getHSSFCell(HSSFRow row,Integer colNum){
            HSSFCell cell = row.getCell(colNum);
            if (cell == null) { 
                cell = row.createCell(colNum);
            }
            return cell;
        }
        
        /** 数据替换   **/
        
        /**
         * 替换表格${}数据
         * 
         * @param replaceDataMap
         * @param sheet
         */
        public static void replaceCellValue(Map<String, Object> replaceDataMap,HSSFSheet sheet) {
            replaceCellValue(replaceDataMap,sheet,0);
        }
        
        public static void replaceCellValue(Map<String, Object> replaceDataMap,HSSFSheet sheet,int checkRowNum) {
            Iterator rows = sheet.rowIterator();
            while (rows.hasNext()) {
                HSSFRow row = (HSSFRow) rows.next();
                if (row != null) {
                    int num = row.getLastCellNum();
                    if(checkRowNum-1>=0){
                        if (row.getRowNum() > checkRowNum-1) {
                            break;
                        }
                    }
                    for (int i = 0; i < num; i++) {
                        HSSFCell cell = row.getCell(i);
                        if (cell == null || cell.getStringCellValue() == null) {
                            continue;
                        }
                        String cellValue = cell.getStringCellValue();
    
                        if (!"".equals(cellValue)) {
                            if (cellValue.indexOf('$') != -1) {
                                cell.setCellValue(getReplaceValue(cellValue,replaceDataMap));
                            }
                        } else {
                            cell.setCellValue("");
                        }
                    }
                }
            }
        }
        
    
        /**
         * 从replaceDataMap中获取${XX}对应要替换的数据
         * @param cellValue        ${}名称(每$待办要替换一个数据)
         * @param replaceDataMap    包含要用于替换数据的map
         * @return
         */
        private static String getReplaceValue(String cellValue,Map<String, Object> replaceDataMap) {
    
            // 获取$出现的次数。
            int num = 0;
            for (int i = 0; i < cellValue.length(); i++) {
                if ("$".equals(cellValue.substring(i, i + 1))) {
                    num++;
                }
            }
            for (int i = 0; i < num; i++) {
                String str = cellValue.substring(cellValue.indexOf('{') + 1,cellValue.indexOf('}'));
                if (null == replaceDataMap.get(str)) {
                    cellValue = cellValue.replace("${" + str + "}", "");
                } else {
                    cellValue = cellValue.replace("${" + str + "}",
                    (String) replaceDataMap.get(str));
                }
            }
            return cellValue;
        }
        
        /**
         * 设置建表时间
         * c_t_year 建表时间-年
         * c_t_mouth 建表时间-月
         * c_t_day 建表时间-日
         * @param sheet
         */
        private static void setCreateTime(HSSFSheet sheet){
            //设置建表时间数据
            Calendar c = Calendar.getInstance();
            int year = c.get(Calendar.YEAR);
            int mouth = c.get(Calendar.MONTH) + 1;
            int day = c.get(Calendar.DAY_OF_MONTH);
            Map<String, Object> replaceDataMap = new HashMap<String, Object>();
            replaceDataMap.put("c_t_year", String.valueOf(year));
            replaceDataMap.put("c_t_mouth", String.valueOf(mouth));
            replaceDataMap.put("c_t_day",String.valueOf(day));
            //替换
            replaceCellValue(replaceDataMap, sheet);
        }
        
        /** 坐标   **/
        
        //x轴坐标+1
        private static final Map<Character, Integer> excelXAddr = new HashMap<Character, Integer>(){
            {
                put('A',1);put('B',2);put('C',3);put('D',4);put('E',5);put('F',6);
                put('G',7);put('H',8);put('I',9);put('J',10);put('K',11);put('L',12);
                put('M',13);put('N',14);put('O',15);put('P',16);put('Q',17);
                put('R',18);put('S',19);put('T',20);put('U',21);put('V',22);
                put('W',23);put('X',24);put('Y',25);put('Z',26);
            }
        };
        
        /**
         * 根据坐标获取X坐标对应的索引
         * @param xName
         * @return
         */
        public static final Integer getXAddr(String xName){
            Integer xAddr = 0;
            if(xName!=null && xName!=""){
                char[] xNameList = xName.toCharArray();
                xAddr = excelXAddr.get(xNameList[0]);
                for(int i=1;i<xNameList.length;i++){
                    xAddr = xAddr*26+excelXAddr.get(xNameList[i]);
                }
            }
            return --xAddr;
        }
        
        /** 单元格合并   **/
        
        /**
         * 多次合并单元格
         * @param sheet 需要合并的工作表对象
         * @param mergedAddress2D 单次合并单元格数组的数组
         */
        public static void mergedAddress(HSSFSheet sheet,String [][] mergedAddress2D){
            for(String[] mergedAddress:mergedAddress2D){
                mergedAddress(sheet ,mergedAddress);
            }
        }
        
        /**
         * 一次合并单元格
         * @param sheet 需要合并的工作表对象
         * @param mergedAddress 如:{"1","A","1","K"}前两个为左上角单元格,后两个值为右下角单元格
         */
        public static void mergedAddress(HSSFSheet sheet,String [] mergedAddress){
            //x轴开始坐标
            int xsA = getXAddr(mergedAddress[1]);
            //x轴结束坐标
            int xeA = getXAddr(mergedAddress[3]);
            sheet.addMergedRegion(new CellRangeAddress(Integer.valueOf(mergedAddress[0]).intValue()-1,Integer.valueOf(mergedAddress[2]).intValue()-1,--xsA,--xeA));
        }
        
        /**
         * 多次合并单元格,并可设置合并单元格属性
         * @param sheet 需要合并的工作表对象
         * @param mergedAddress2D 单次合并单元格数组的数组
         */
        public static void mergedAddress(HSSFWorkbook wb,int sheetNum,List<Map<String,String>> mergedAddressList){
            HSSFSheet sheet = wb.getSheetAt(sheetNum);
            for(Map<String,String> mergedAddress:mergedAddressList){
                Integer ys = Integer.valueOf(mergedAddress.get("ys"));
                Integer xs = Integer.valueOf(mergedAddress.get("xs"));
                Integer ye = Integer.valueOf(mergedAddress.get("ye"));
                Integer xe = Integer.valueOf(mergedAddress.get("xe"));
                //合并单元格
                CellRangeAddress cellRangeAddress = mergedAddress(sheet,ys,xs,ye,xe);
                
                //获取指定单元格
                HSSFCell cell = getHSSFCell(sheet,ys,xs);
                //查看是否需要设置单元格属性
                String cellStyle = mergedAddress.get("cellStyle");
                if(null!=cellStyle){
                    HSSFCellStyle HSSFCS = getCellStyle(wb,cellStyle);
                    cell.setCellStyle(HSSFCS);
                    //setBorderForMergeCell(CellStyle.BORDER_THIN,cellRangeAddress,0,wb);
                }
                
                //查看是否需要设置字体属性
                String fontStyle = mergedAddress.get("fontStyle");
                if(null!=fontStyle){
                    HSSFFont HSSFF = getFontStyle(wb,fontStyle);
                    HSSFCellStyle HSSFCS = cell.getCellStyle();
                    HSSFCS.setFont(HSSFF);
                    cell.setCellStyle(HSSFCS);
                }
                
                //查看是否需要设置单元格内容
                String content = mergedAddress.get("content");
                if(null!=content){
                    cell.setCellValue(content);
                }
            }
        }
        
        /**
         * 一次合并单元格
         * @param sheet 需要合并的工作表对象
         * @param ys y轴开始坐标(左上角单元格y轴)
         * @param xs x轴开始坐标(左上角单元格x轴)
         * @param ye y轴结束坐标(右下角单元格y轴)
         * @param xe x轴结束坐标(右下角单元格x轴)
         * 
         */
        public static CellRangeAddress mergedAddress(HSSFSheet sheet,int ys,int xs,int ye,int xe){
            CellRangeAddress cellRangePlanNo = new CellRangeAddress( ys, ye, xs, xe );
            sheet.addMergedRegion(cellRangePlanNo);
            return cellRangePlanNo;
        }
        
        /** 工具   **/
        
        //自动获取单元格高度
        public static float getExcelCellAutoHeight(String str, float fontCountInline) {
            float defaultRowHeight = 12.00f;// 每一行的高度指定
            float defaultCount = 0.00f;
            for (int i = 0; i < str.length(); i++) {
                float ff = getregex(str.substring(i, i + 1));
                defaultCount = defaultCount + ff;
            }
            return ((int) (defaultCount / fontCountInline) + 1) * defaultRowHeight;// 计算
        }
    
        public static float getregex(String charStr) {
            if (charStr == " ") {
                return 0.5f;
            }
            // 判断是否为字母或字符
            if (Pattern.compile("^[A-Za-z0-9]+$").matcher(charStr).matches()) {
                return 0.5f;
            }
            
            // 判断是否为全角
            if (Pattern.compile("[u4e00-u9fa5]+$").matcher(charStr).matches()) {
                return 1.00f;
            }
            
            // 全角符号 及中文
            if (Pattern.compile("[^x00-xff]").matcher(charStr).matches()) {
                return 1.00f;
            }
            return 0.5f;
        }
        
        /** 字体/单元格style **/
    
        /**
         * 获取单元格风格
         * @param wb
         * @return
         */
        public static HSSFCellStyle getCellStyle(HSSFWorkbook wb,String styleName){
            HSSFCellStyle cellStyle = null;
            if("".equals(styleName)){
                
            }else{
                cellStyle = wb.createCellStyle();
                cellStyle.setWrapText(true);
                cellStyle.setAlignment(CellStyle.ALIGN_CENTER);// 水平居中
                cellStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);// 垂直居中
                cellStyle.setBorderBottom((short) 1);
                cellStyle.setBorderLeft((short) 1);
                cellStyle.setBorderRight((short) 1);
                cellStyle.setBorderTop((short) 1);
            }
            return cellStyle;
        }
        
        /**
         * 获取默认单元格风格
         * @param wb
         * @return
         */
        public static HSSFCellStyle getCellStyle(HSSFWorkbook wb){
            return getCellStyle(wb,null);
        }
        
        /**
         * 获取单元格风格
         * @param wb
         * @return
         */
        public static HSSFFont getFontStyle(HSSFWorkbook wb,String styleName){
            HSSFFont fontStyle = null;
            if("left_title_1".equals(styleName)){
                fontStyle = wb.createFont();
                fontStyle.setFontName("宋体");
                fontStyle.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//粗体显示
                fontStyle.setFontHeightInPoints((short) 12);//设置字体大小
            }else{
                
            }
            return fontStyle;
        }
        
        /**
         * 获取默认单元格风格
         * @param wb
         * @return
         */
        public static HSSFFont getFontStyle(HSSFWorkbook wb){
            return getFontStyle(wb,null);
        }
        
        /**
         * 设置合并单元格边框
         * @param i
         * @param cellRangeTitle
         * @param sheet
         * @param workBook
         */
        private static void setBorderForMergeCell(int i, CellRangeAddress cellRangeAddress, int sheetNum, HSSFWorkbook wb){
            RegionUtil.setBorderBottom(i, cellRangeAddress, wb.getSheetAt(sheetNum), wb);
            RegionUtil.setBorderLeft(i, cellRangeAddress, wb.getSheetAt(sheetNum), wb);
            RegionUtil.setBorderRight(i, cellRangeAddress, wb.getSheetAt(sheetNum), wb);
            RegionUtil.setBorderTop(i, cellRangeAddress, wb.getSheetAt(sheetNum), wb);
        }
        
        /**
         * 输出信息到页面
         * @param response
         * @param Msg
         */
        public static void writeMsgToHtml(HttpServletResponse response, String Msg) {
            try {
                response.setContentType("text/html;charset=utf-8");
                PrintWriter out = response.getWriter();
                out.write(Msg);
                out.close();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
        
        /** 文件传输   **/
        
        /**
         * 用HSSFWorkbook生成excel文件在服务器
         * @param excelName
         * @param wb
         * @throws FileNotFoundException
         * @throws IOException
         */
        public static boolean generateExcel(String fileName, HSSFWorkbook wb) throws FileNotFoundException, IOException {
            try {
                // 输出文件
                String writeExcelUrl = System.getProperty("catalina.home") + "/webapps/webdav/" + fileName+".xls";
                File fileOut = new File(writeExcelUrl);
                FileOutputStream os = new FileOutputStream(fileOut);
                wb.write(os);
                close(os);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                //e.printStackTrace();
                return false;
            }
            return true;
        }
        
        /**
         * 用HSSFWorkbook生成excel文件在服务器
         * @param excelName
         * @param wb
         * @throws FileNotFoundException
         * @throws IOException
         */
        public static String generateExcel2(String fileName, HSSFWorkbook wb) throws FileNotFoundException, IOException {
            String dz = "";
            try {
                // 输出文件
                String writeExcelUrl = System.getProperty("catalina.home") + "/webapps/webdav/" + fileName+".xls";
                File fileOut = new File(writeExcelUrl);
                FileOutputStream os = new FileOutputStream(fileOut);
                wb.write(os);
                close(os);
                dz = fileName+".xls";
            } catch (IOException e) {
                // TODO Auto-generated catch block
                //e.printStackTrace();
                return "";
            }
            return dz;
        }
    
        /**
         * 用HSSFWorkbook生成excel文件给用户下载
         * @param excelName
         * @param wb
         * @throws IOException 
         * @throws FileNotFoundException
         * @throws IOException
         */
        public static boolean generateExcel(HttpServletResponse response,String fileName, HSSFWorkbook wb){
            try {
                setResponseHeader(response, fileName);
                OutputStream os = response.getOutputStream();
                wb.write(os);
                close(os);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                //e.printStackTrace();
                return false;
            }
            return true;
        }
        
        /**
         * 关闭输出流
         * @param os
         */
        private static void close(OutputStream os) {
            if (os != null) {
                try {
                    os.flush();
                    os.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        
        /**
         * 发送响应流方法
         * @param response
         * @param fileName
         */
        public static void setResponseHeader(HttpServletResponse response, String fileName) {
            try {
                try {
                    fileName = new String((fileName+".xls").getBytes("UTF-8"),"ISO8859-1");
                    //fileName = new String(fileName.getBytes(),"ISO8859-1");
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                }
                response.reset();
                response.setContentType("application/msexcel");
                //response.setContentType("application/octet-stream;charset=ISO8859-1");
                response.setHeader("Content-Disposition", "attachment;filename="+ fileName);
                response.addHeader("Pargam", "no-cache");
                response.addHeader("Cache-Control", "no-cache");
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
        
        /**
         * xls打包成zip进行下载
         */
        public String downloads(String[] filepath, HttpServletResponse response,String name) throws IOException, ServletException {
            Date day = new Date();
            SimpleDateFormat df = new SimpleDateFormat("HHmmss");
            // 要生成的压缩文件地址和文件名称
            String fileName = name + df.format(day) + ".zip";
            String path = System.getProperty("catalina.home") + "/webapps/webdav/" + fileName;
            File zipFile = new File(path);
            ZipOutputStream zipStream = null;
            FileInputStream zipSource = null;
            BufferedInputStream bufferStream = null;
            try {
                // 构造最终压缩包的输出流
                zipStream = new ZipOutputStream(new FileOutputStream(zipFile));
                for (int i = 0; i < filepath.length; i++) {
                    File file = new File(System.getProperty("catalina.home")
                            + "/webapps/webdav/" + filepath[i]);
                    // 将需要压缩的文件格式化为输入流
                    zipSource = new FileInputStream(file);
                    // 压缩条目不是具体独立的文件,而是压缩包文件列表中的列表项,称为条目,就像索引一样
                    ZipEntry zipEntry = new ZipEntry(file.getName());
                    // 定位该压缩条目位置,开始写入文件到压缩包中
                    zipStream.putNextEntry(zipEntry);
                    // 输入缓冲流
                    bufferStream = new BufferedInputStream(zipSource, 1024 * 10);
                    int read = 0;
                    // 创建读写缓冲区
                    byte[] buf = new byte[1024 * 10];
                    while ((read = bufferStream.read(buf, 0, 1024 * 10)) != -1) {
                        zipStream.write(buf, 0, read);
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                // 关闭流
                try {
                    if (null != bufferStream)
                        bufferStream.close();
                    if (null != zipStream)
                        zipStream.close();
                    if (null != zipSource)
                        zipSource.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
    
            return fileName;
            /*
             * //2.获取要下载的文件名 String fileName =
             * path.substring(path.lastIndexOf("\")+1);
             * //3.设置content-disposition响应头控制浏览器以下载的形式打开文件 File fi=new File(path);
             * response.setHeader("Content-Disposition",
             * "attachment;filename="+URLEncoder.encode(fileName, "UTF-8"));
             * response.addHeader("Content-Length", "" + fi.length());
             * response.setContentType("application/octet-stream"); //4.获取要下载的文件输入流
             * InputStream in = new FileInputStream(fi); int len = 0; //5.创建数据缓冲区
             * byte[] buffer = new byte[1024]; //6.通过response对象获取OutputStream流
             * OutputStream out = response.getOutputStream();
             * //7.将FileInputStream流写入到buffer缓冲区 while ((len = in.read(buffer)) > 0)
             * { //8.使用OutputStream将缓冲区的数据输出到客户端浏览器 out.write(buffer,0,len); }
             * in.close();
             */
        }
    
        public static void main(String[] args) {
            
        }
    }

    ...

    // (后台调用的方法部分)
    List<Map<String, Object>> sj = dBSelect(sql); //文件名 SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss"); Date today = new Date(); String appId ="ZB-"; // 中文不行 //b=b.replace("b",""); appId += format.format(today);//.replace("-","").replace(":","").replace(" ","") String [] sxm = {"序号","xmmc", "problemContent", "selfCheckingSituation", "","endTime","","completion",""}; // xmmc, problem_content, self_checking_situation, '', end_time,'',completion,"" // 所属项目 工作内容 完成结果 完成状态 完成时间 协助人 已达成结果和完成程度 备注 if(sj !=null && !sj.isEmpty()){ HSSFWorkbook wb = ExcelUtil2.importExcellModel("/excelModel/WeeklyTemplate.xls"); // 由于 $ 部分需要替换 ExcelUtil2.replaceCellValue(replaceDataMap,wb.getSheetAt(0),5); // 创建一个Excel文件 wb = ExcelUtil2.createHSSFSheet(wb,0, 5,1, sj,sxm); // 创建一个Excel文件 /*HSSFWorkbook wb = ExcelUtil2.createHSSFSheet("/excelModel/rent_collection_import.xls", 2, 1, list, fieldName); */ String ming = ExcelUtil2.generateExcel2(appId,wb); // generateExcel(response对象,导出文件的名字,wb) //ExcelUtil2.generateExcel(getResponse(),appId,wb); // 不用ajax 的方式,其不用返回什么 try{ if(!ming.equals("")){ //导出成功 returnMap.put("ming", ming); } }catch (Exception e) { returnMap.put("status", "-1"); //e.printStackTrace(); }

    ...

    function exportExcel(){ //不用ajax
            var large = mini.get("large").getText();
            var Small = mini.get("Small").getText();
            if(large != null && Small !=null && large != "" && Small !="" ){
                console.log(large);
                window.open("<%=basePath %>exportExcel/exportExcel.do?large="+large+"&Small="+Small);
            }else{
                alert("请输入开始时间与截止时间!!!");
            }
            
        }
        function exportExcel_ajax(){ //用ajax(可以传复杂的参数)
            //alert("!!!!!!!!!!!!!");
            var large = mini.get("large").getText();
            var Small = mini.get("Small").getText();
            if(large != null && Small !=null && large != "" && Small !="" ){
                $.ajax({
                    url: "<%=basePath %>exportExcel/exportExcel.do",
                    data: {large:large,Small:Small},
                    type: "post",
                    dataType:'json',
                    success: function (text) {
                        if(text.status == '-1') {
                            //console.log("");
                            mini.alert("导出失败或无数据!");
                        }else{
                            var ming = text.ming;
                            <%String webdav = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+"/webdav/";%>
                            window.open("<%=webdav%>"+ming);
                        }
                                    
                    },
                    error: function (jqXHR, textStatus, errorThrown) {
                        //alert(jqXHR.responseText); 
                        //cancel(); //关闭窗口
                        mini.alert("导出异常!");
                    }
                });
            }else{
                alert("请输入开始时间与截止时间!!!");
            }
        }
  • 相关阅读:
    【Gamma】 Phylab 展示博客
    【技术博客】Postman接口测试教程
    【技术博客】利用Python将markdown文档转为html文档
    【技术博客】使用PhpStorm和Xdebug实现Laravel工程的远程开发及调试
    【技术博客】Laravel5.1文件上传单元测试
    【技术博客】移动端的点击事件与Sticky Hover问题
    【技术博客】 Laravel 5.1单元测试(PHPUnit)入门
    Scrum Meeting博客目录
    团队事后分析
    Gamma阶段测试报告
  • 原文地址:https://www.cnblogs.com/mysterious-killer/p/11947746.html
Copyright © 2011-2022 走看看