zoukankan      html  css  js  c++  java
  • Java生成Excel

    public class SimpleExcelWrite {
     public void createExcel(OutputStream os) throws WriteException,IOException{
    //  创建工作薄
      WritableWorkbook workbook=Workbook.createWorkbook(os);
    //  创建新的一页
      WritableSheet sheet=workbook.createSheet("First Sheet", 0);
    //  创建要显示的具体内容
      Label xuexiao=new Label(0,0,"学校");
      sheet.addCell(xuexiao);
      Label zhuanye=new Label(1,0,"专业");
      sheet.addCell(zhuanye);
      Label jingzhengli=new Label(2,0,"竞争力");
      sheet.addCell(jingzhengli);
      
      Label qinghua=new Label(0,1,"清华大学");
      sheet.addCell(qinghua);
      Label jisuanji=new Label(1,1,"计算机专业");
      sheet.addCell(jisuanji);
      Label gao=new Label(2,1,"高");
      sheet.addCell(gao);
      
      Label beida=new Label(0,2,"北京大学");
      sheet.addCell(beida);
      Label falv=new Label(1,2,"法律专业");
      sheet.addCell(falv);
      Label zhong=new Label(2,2,"中");
      sheet.addCell(zhong);
      
      Label ligong=new Label(0,3,"北京理工大学");
      sheet.addCell(ligong);
      Label hangkong=new Label(1,3,"航空专业");
      sheet.addCell(hangkong);
      Label di=new Label(2,3,"低");
      sheet.addCell(di);
      
    //  把创建的内容写入到输出流中,并关闭输出流
      workbook.write();
      workbook.close();
      os.close();
      
     }
    }
    <%
     String fname="学校专业竞争力情况";
     OutputStream os=response.getOutputStream();
     response.reset();
     
     //下面是对中文文件名的处理
     response.setCharacterEncoding("UTF-8");//设置相应内容的编码格式
     fname=java.net.URLEncoder.encode(fname,"UTF-8");
     response.setHeader("Content-Disposition","attachment;filename="+ new String(fname.getBytes("UTF-8"),"GBK")+".xls");
     response.setContentType("application/msexel");//定义输出类型
     SimpleExcelWrite sw=new SimpleExcelWrite();
     sw.createExcel(os);
     %>
    import java.util.List;
    import java.util.Map;
    
    import javax.servlet.http.HttpServletRequest;
    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.HSSFRow;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.hssf.util.HSSFColor;
    import org.springframework.web.servlet.view.document.AbstractExcelView;
    
    public class SimpleExcelView extends AbstractExcelView {
    
        /**
         * 生成excel视图,可用excel工具打开或者保存 单行表头,简单模板
         * 例子可参考:问题反馈_excel导出
         */
        public void buildExcelDocument(Map<String, Object> model, HSSFWorkbook workbook,
                HttpServletRequest request, HttpServletResponse response) throws Exception {
    
            // 设置文件名
            // 创建sheet
            HSSFSheet sheet = workbook.createSheet();
            
            // 设置样式
            HSSFCellStyle hssCellStyle = getGeneralCellStyle(workbook);
    
            // 处理表格头
            String[] headArr = (String[]) model.get("head");
            sheet.setDefaultColumnWidth(headArr.length);
            HSSFCell cell = null;
            int colNum = headArr.length;
            for (int i = 0; i < colNum; i++) {
                cell = getCell(sheet, 0, i);
                setText(cell, headArr[i]);
                cell.setCellStyle(hssCellStyle);
                // 设置列宽
                sheet.setColumnWidth(i, 5000);
            }
    
            // 处理数据
            List<List<Object>> data = (List<List<Object>>) model.get("data");
            List<Object> row = null;
            int rowNum = data.size();
            for (int i = 0; i < rowNum; i++) {
                row = data.get(i);
                for (int j = 0; j < colNum; j++) {
                    cell = getCell(sheet, i + 1, j);
                    setText(cell, "" + row.get(j));
                    cell.setCellStyle(hssCellStyle);
                }
            }
    
        }
    
        /**
         * 设置样式
         * 
         * @param cell
         * @param workbook
         */
        public HSSFCellStyle getGeneralCellStyle(HSSFWorkbook workbook) {
            HSSFCellStyle cellStyle = workbook.createCellStyle();
            cellStyle.setLocked(false);
    
            // 设置Excel中的边框
            cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
            cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
            cellStyle.setBottomBorderColor(HSSFColor.BLACK.index);
            cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
            cellStyle.setLeftBorderColor(HSSFColor.BLACK.index);
            cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
            cellStyle.setRightBorderColor(HSSFColor.BLACK.index);
            cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
            cellStyle.setTopBorderColor(HSSFColor.BLACK.index);
    
            return cellStyle;
        }
    }
  • 相关阅读:
    react-redux-reducer
    react-redux-action
    node-express-2-jade
    node-express-1
    vuex-Module
    vuex-Action(异步)
    vuex-Mutation(同步)
    vuex-getter
    vuex-state
    ##DAY7 UINavigationController
  • 原文地址:https://www.cnblogs.com/mingforyou/p/2262317.html
Copyright © 2011-2022 走看看