关于使用POI,HSSF去实现excel导出数据实战和api讲解以及个人见解

前景:最近工作中遇到一个需要按照客户要求的格式去输出excel表格的需求,但是发现项目自带的excel工具类无法满足需求,于去查阅了相关资料并写下这篇文章备用。需求:需要生成一个这样的类似于账单的excel表格怎么实现呢? 一人我饮酒醉,你说的这个我不会,哈哈哈打开百度,这是作为一个cv工程师最基本的技能首先要知道excel的组成excel文件——>打开——>表格页(也就是说工作表,这个是编写excel的基础)——>进行编写数据这就是基本的流程,那么我们怎么使用java代码实现
摘要由CSDN通过智能技术生成

前景:最近工作中遇到一个需要按照客户要求的格式去输出excel表格的需求,但是发现项目自带的excel工具类无法满足需求,于去查阅了相关资料并写下这篇文章备用。
需求:在这里插入图片描述需要生成一个这样的类似于账单的excel表格

怎么实现呢? 一人我饮酒醉,你说的这个我不会,哈哈哈
打开百度,这是作为一个cv工程师最基本的技能
首先要知道excel的组成
excel文件——>打开——>表格页(也就是说工作表,这个是编写excel的基础)——>进行编写数据

这就是基本的流程,那么我们怎么使用java代码实现?
上代码

private void exportToExcel(HttpServletRequest request, HttpServletResponse response) throws IOException{
   
		String startTime = request.getParameter("startTime");
        String endTime = request.getParameter("endTime"); 
        Map map = new HashMap<>();
        map.put("startTime", startTime);
        map.put("endTime", endTime);
        Map returnmap = service.getPageData(map);
        List<RepairLabourServicesList> specialList = (List<RepairLabourServicesList>) returnmap.get("specialList");
        JSONArray array = (JSONArray) returnmap.get("List");
        String date = (String) returnmap.get("date");
        HSSFWorkbook workbook = new HSSFWorkbook();  
        //建立新的sheet对象(excel的表单)  
        HSSFSheet sheet=workbook.createSheet("维修劳务清单");  
        sheet.setDefaultRowHeightInPoints(20);//设置缺省列高
        sheet.setDefaultColumnWidth(20);//设置缺省列宽         
        //设置指定列的列宽,256 * 50这种写法是因为width参数单位是单个字符的256分之一  
//        sheet.setColumnWidth(cell.getColumnIndex(), 256 * 50);  
      	//在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个  
      	HSSFRow row1=sheet.createRow(0); 	
      	HSSFCellStyle cellStyle = workbook.createCellStyle();
      	HSSFFont  fontStyle = workbook.createFont();  
      	HSSFCellStyle cellcontextStyle = workbook.createCellStyle();
      	HSSFFont  fontcontextStyle = workbook.createFont(); 
    	HSSFCellStyle celltitleStyle = workbook.createCellStyle();
      	HSSFFont  fonttitleStyle = workbook.createFont();
      	HSSFCellStyle cellSpecialStyle = workbook.createCellStyle();
    	HSSFFont  fontSpecialStyle = workbook.createFont();
    	HSSFCellStyle cellFooterStyle = workbook.createCellStyle();
    	HSSFFont  fontFooterStyle = workbook.createFont();
    	HSSFCellStyle cellTimeStyle = workbook.createCellStyle();
    	HSSFFont  fontTimeStyle = workbook.createFont();
    	
    	HSSFCellStyle cellManagerStyle = workbook.createCellStyle();
        //设置粗体          
        fontStyle.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);	
        // 将字体对象赋值给单元格样式对象          
      	cellStyle.setFont(fontStyle);
      	cellStyle.setBorderBottom(HSSFCellStyle.SOLID_FOREGROUND);//下边框        
      	cellStyle.setBorderLeft(HSSFCellStyle.SOLID_FOREGROUND);//左边框        
      	cellStyle.setBorderRight(HSSFCellStyle.SOLID_FOREGROUND);//右边框        
      	cellStyle.setBorderTop(HSSFCellStyle.SOLID_FOREGROUND);//上边框
      	cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//左右居中       
      	cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//上下居中 
      	
      	cellcontextStyle.setBorderBottom(HSSFCellStyle.SOLID_FOREGROUND);//下边框        
      	cellcontextStyle.setBorderLeft(HSSFCellStyle.SOLID_FOREGROUND);//左边框        
      	cellcontextStyle.setBorderRight(HSSFCellStyle.SOLID_FOREGROUND);//右边框        
      	cellcontextStyle.setBorderTop(HSSFCellStyle.SOLID_FOREGROUND);//上边框
      	cellcontextStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//左右居中
      	cellcontextStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//上下居中 
      	
      	cellSpecialStyle.setBorderBottom(HSSFCellStyle.SOLID_FOREGROUND);//下边框        
      	cellSpecialStyle.setBorderLeft(HSSFCellStyle.SOLID_FOREGROUND);//左边框        
      	cellSpecialStyle.setBorderRight(HSSFCellStyle.SOLID_FOREGROUND);//右边框        
      	cellSpecialStyle.setBorderTop(HSSFCellStyle.SOLID_FOREGROUND);//上边框
      	cellSpecialStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//上下居中 
      	
      	celltitleStyle.setFont
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值