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.youkuaiyun.com/download/qq_42703531/11502075