java DBF弹框导出

DBF导出

代码

public ResultDto OutputDBF(String stuStatus,String mohu,HttpServletResponse response,HttpServletRequest request) throws Exception{
		String[] tit = new String[]{
				"sdid","stuname","stusex","stuidcard","stunature","birthday","stuaddress","stuphone","idcardimgz",
				"idcardimgf",
				"selfimg","examlvl","stulsh","openid","stustatus","refusenum","refuser","createtime","modifytime"};
		  
		  String[] beiyong = new String[]{"sdId","stuName","stuSex","stuIdCard","stuNature","stuBirthday",
				  "stuAddress","stuPhone","stuIdCardImgZ","stuIdCardImgF","stuSelfImg","stuExamLvl","stuLsh",
				  "openId","stuStatus","stuRefuseNum","stuRefuseReason","createTime","modifyTime"};
		  PageUtil pageUtil = new PageUtil();
			pageUtil.setCheckStatus(stuStatus);
			pageUtil.setMohu(mohu);
		  List<StuDataDBF> outputDBF = stuDataService.OutputExcel(pageUtil);
		  int[] len = new int[]{5,25,7,22,10,15,50,15,40,40,40,8,30,30,8,9,40,25,25};
		  String[][] con = new String[outputDBF.size()][19];
		  int i = 0;
		  for (StuDataDBF stuDataDBF : outputDBF) {
			  if(stuDataDBF.getStuStatus().equals("0")){
				  stuDataDBF.setStuStatus("未审核");
			  }
			  if(stuDataDBF.getStuStatus().equals("1")){
				  stuDataDBF.setStuStatus("审核通过");
			  }
			  if(stuDataDBF.getStuStatus().equals("2")){
				  stuDataDBF.setStuStatus("审核驳回");
			  }
			  if(stuDataDBF.getStuStatus().equals("3")){
				  stuDataDBF.setStuStatus("重新提交");
			  }
				   for (int j = 0; j < 19; j++) {
					   //通过反射的方法根据需要的属性名称获得属性
					   Field field = stuDataDBF.getClass().getDeclaredField(beiyong[j]);
			            //设置对象的访问权限,保证对private的属性的访问
			            field.setAccessible(true);
			            //取到对象中需要的对象的属性赋值给二维数组
			            con[i][j] =  (String)field.get(stuDataDBF);
				   }
				   i++;
		  }
		  //创建默认文件路径
		  String dir = request.getSession().getServletContext().getRealPath("/output");
			File fileLocation = new File(dir);
			//如果没有该文件夹,就创建
			if (!fileLocation.exists()) {
				boolean isCreated = fileLocation.mkdir();
				if (!isCreated) {
				}
			}
		  String webUrl = request.getSession().getServletContext().getRealPath("/output");
		  SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd mm-ss");
		  String createExcelname = df.format(new Date()) + "export.dbf";
		  //拼接文件路径
		  String outputFile = webUrl + File.separator + createExcelname;
		  //写文件
		  DBFUtils.writeDBF(outputFile,con,tit,len);
		  //读文件
		  DBFUtils.readDBF(outputFile);
		  File f = new File(outputFile);
		  FileInputStream fis = new FileInputStream(f);
			URLEncoder.encode(f.getName(), "utf-8");
			byte[] b = new byte[fis.available()];
			fis.read(b);
		  //导出弹窗
		  response.setContentType("application/vnd.ms-excel; charset=utf-8");
		  response.setHeader("Content-Disposition","attachment;filename="+createExcelname);
		  response.setCharacterEncoding("utf-8");
		  OutputStream os=response.getOutputStream();
		  os.write(b);
		  os.flush();
		  os.close();
		  if (fis != null) {
				fis.close();
			}
		 //删除默认路径文件
		 f.delete();
		 }

该方法只能是配合以下jar包使用

dbf.jar链接:https://download.csdn.net/download/qq_42703531/11502075

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值