JAVA 数据导入到Excel里

 public static String getExcel(String title[],String context[][],String url){
		 
		    //操作执行
		    try { 
		      //t.xls为要新建的文件名
		      WritableWorkbook book= Workbook.createWorkbook(new File(url)); 
		      //生成名为“第一页”的工作表,参数0表示这是第一页 
		      WritableSheet sheet=book.createSheet("第一页",0); 
		       
		      //写入内容
		      for(int i=0;i<title.length;i++)  //title
		        sheet.addCell(new Label(i,0,title[i])); 
		      for(int i=0;i<context.length;i++)  //context
		      {
		        for(int j=0;j<context[i].length;j++)
		        {
		          sheet.addCell(new Label(j,i+1,context[i][j])); 
		        }
		      }
		   /*   sheet.addCell(new Label(0,1,"教师"));
		      sheet.addCell(new Label(0,3,"助教"));*/
		       
		      /*合并单元格.合并既可以是横向的,也可以是纵向的
		       *WritableSheet.mergeCells(int m,int n,int p,int q);  表示由(m,n)到(p,q)的单元格组成的矩形区域合并
		       * */
		  /*    sheet.mergeCells(0,1,0,2);
		      sheet.mergeCells(0,3,0,4);*/
		       
		      //写入数据
		      book.write(); 
		      //关闭文件
		      book.close(); 
		      return url;
		    }
		    catch(Exception e) { 
		    	
		    	e.printStackTrace();
		    	
		    	return "生成失败!";
		    } 
		 
	 }

传进来的数据是二维数组才可以。因为是为了确定数据在Excel里的具体位置。

所以,接口写成二维数组不难,1个for循环就搞定了。

@Override
	public String getWriterExcel(WarnSelVo warn) {
		List<WarnReturnParam> maps = monitorWarningDao.selectListWarrningInfo(warn);
		String[][] strs =new String[maps.size()][];
			for(int i=0;i<maps.size();i++){
				WarnReturnParam mps =maps.get(i);
				String[] str =new String[]{mps.getPrjName(),mps.getMpsName(),mps.getStop_mark(),mps.getAlertDate(),mps.getDiffValue(),mps.getAccValue(),mps.getAlertLevel(),
						mps.getOpLevel(),mps.getUpdateTime()};
				strs[i]=str;
			}
			String[] title =new String[]{"工点名称","测点名称","	预警状态","预警时间","当前差值","累计","预警前级别",
					"处理后级别","更新时间"};
			String url = WriterExcelUtil.getExcel(title, strs, "e:/t12.xls");
		
		return url;
	}

返回的是URL,为了接口实现下载。

   /***
	 * 导出报表
	 */
	@RequestMapping(value = "/getWriterExcel")
	public ResponseEntity<byte[]> getWriterExcel(HttpServletRequest req) throws IOException {
		  String file1 = QRCodeService.getWriterExcel(warn);
		   File file = new File(file1);
		HttpHeaders headers = new HttpHeaders();
		String fileName = new String(("warningInfo_" + TimeToolsUtil.getUserDate() + ".xls").getBytes("UTF-8"),
				"iso-8859-1");// 为了解决中文名称乱码问题
		
		
		headers.setContentDispositionFormData("attachment", fileName); // 下载后显示的名字
		headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);

		byte[] t =FileUtils.readFileToByteArray(file);
		file.delete();
	
		
		return new ResponseEntity<byte[]>(t, headers, HttpStatus.CREATED); // 向浏览器发送数据
		
		}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

除不掉的灰色

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值