首页 > 编程语言 >java通用xls导出设计

java通用xls导出设计

时间:2023-05-22 12:23:03浏览次数:37  
标签:java url JSONUtil Charset 导出 json import xls

背景

在后端日常开发中总会有各种各样的导出需求,实现这个需求必须要解决的两个问题:

1、表头不能直接使用字段名,需要显示为中文,甚至还需要考虑国际化

2、值需要翻译,比如性别、状态之类的字段

现状

现在主流写的比较好的方法是定义一个对象,对象上用自定义的注解+easytrans

我的解决方案

定义要导入的字段

1、解决表头与字段的映射

2、表头加#进行后续split,解决翻译问题

{
    "parkls": {
        "parkname": "停车场",
        "carno": "车牌号",
        "intime": "进场时间",
        "outtime": "出场时间",
        "paytime": "支付时间",
        "parktime": "停车时长(单位:分钟)",
        "amt":"支付金额(单位:元)",
        "paytype":"支付方式#paytype",
        "paystatus":"支付状态#paystatus",
        "isrecharge":"是否重新计费#YN",
        "ismonthcard":"是否月卡抵扣#YN"        
    }
}
翻译
{
    "YN": {
        "Y": "是",
        "N": "否"
    },
    "paystatus": {
        "0": "待支付",
        "1": "已支付",
        "2": "已过期"
    },
    "paytype":{
        "0": "微信支付",
        "1": "月卡支付",
        "2": "现金",
        "3":"余额"
    }
}
加载配置
package com.xf.tools;

import java.io.File;
import java.io.FileNotFoundException;
import java.net.URL;
import java.nio.charset.Charset;

import cn.hutool.core.io.FileUtil;
import cn.hutool.json.JSONConfig;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import lombok.val;

public class ExcelDeal {

    public static JSONObject head;
    public static JSONObject trans;

    public synchronized static void load() throws FileNotFoundException {
        URL url = ClassLoader.getSystemResource("exporthead.json");
//        head = JSONUtil.readJSONObject(new File(url.getPath()), Charset.forName("utf-8"));
        String jsonstr = FileUtil.readString(new File(url.getPath()), Charset.forName("utf-8"));
        val config = JSONConfig.create().setOrder(true);
        head = JSONUtil.parseObj(jsonstr, config);
        url = ClassLoader.getSystemResource("trans.json");
//        trans = JSONUtil.readJSONObject(new File(url.getPath()), Charset.forName("utf-8"));
        jsonstr = FileUtil.readString(new File(url.getPath()), Charset.forName("utf-8"));
        trans = JSONUtil.parseObj(jsonstr, config);
    }
}
写xls

这个方法我就不上了,留点大家发挥的空间。

主要是分享下自已的思路,欢迎大家交流。

标签:java,url,JSONUtil,Charset,导出,json,import,xls
From: https://www.cnblogs.com/wujf/p/17420285.html

相关文章

  • SVN 导出改动差异文件
    目录SVN导出改动差异文件应用场景/背景介绍具体操作方法SVN导出改动差异文件应用场景/背景介绍当然下面的两个场景介绍可能用分支管理都会有不错的效果,或者更优,只是记录一下思路,用什么还是看大家个人爱好啦在开发过程中偶尔会遇到有bug不知道具体问题出在哪,需要一步步删......
  • Java使用HttpClient以multipart/form-data向接口上传文件
    前言对接某公司的接口,涉及到资质上传等业务。需要对接他们的上传附件接口。JDK1.8httpclient4.x封装httpclient方法publicstaticStringpostFileMultiPart(Stringurl,Map<String,ContentBody>reqParam)throwsIOException{ CloseableHttpClienthttpclient=HttpCl......
  • 基于springBoot框架JAVA语言汽车销售管理系统功能实现
    运行环境idea(推荐)、jdk1.8、mysql5.X(不能为8驱动不匹配)、maven项目技术springboot+vue项目描述本项目基于springboot以及Vue开发。针对汽车销售提供客户信息、车辆信息、订单信息、销售人员管理、财务报表等功能,提供经理和销售两种角色进行管理。1.安装好node环境2.......
  • 基于JAVA语言实现的养老信息管理系统
    项目描述本系统的主要功能有:账号管理:管理员账号,用户账号健康管理:健康档案,病例档案,药品管理生活管理:每月餐饮,外出报备入住管理:入住登记,寝室分配安全管理:事故记录,访客记录收费标准:入住费用,护理费用运行环境idea+mysql5.7+jdk1.8+maven3项目技术SpringBoot,MySql,ajax,MyBatis......
  • 探索Spring:Java开发的优秀框架
    简介:Spring是Java开发领域中最受欢迎和广泛应用的开源框架之一。它提供了一个全面的编程和配置模型,用于构建现代化的企业级应用程序。本博客将深入探讨Spring框架的重要特性和优势,并解释为什么Spring成为Java开发人员的首选框架。正文:介绍Spring框架Spring是一个轻量级、灵活且功......
  • JavaScript在策划网站中的应用
    JavaScript在策划网站中有许多应用,以下是其中的一些:1. 表单验证:JavaScript可以用来验证用户提交的表单数据,例如验证邮箱格式、密码强度等,比如某某策划网站就是用的这样的代码。2. 动态效果:JavaScript可以用来实现网页上的动画效果和交互特效,例如轮播图、下拉菜单等。3. Ajax请......
  • Java缓存行对齐
    来源:  https://blog.csdn.net/mofeizhi/article/details/106816026  ......
  • Linux 安装配置Java
    1、下载文件Javajdk-8u371-linux-x64.tar.gz 2、上传并解压文件#tar-zxvfjdk-8u371-linux-x64.tar.gz 3、配置环境变量#JavaexportJAVA_HOME=/usr/local/jdk1.8.0_371exportPATH=$JAVA_HOME/bin:$PATHexportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/l......
  • java使用阿里云oss上传文件测试案例+上传策略包装类
    产品文档地址:https://help.aliyun.com/product/31815.html产品购买地址:https://www.aliyun.com/search?scene=all&k=oss在官网首先购买产品,开通oss服务后进入控制台:在https://developer.aliyun.com/ask/2061查看相关的endpoint地址(找到自己所在的区域)在控制台https://oss.c......
  • 学习笔记-Java8新特性-第四节-StreamAPI
    StreamAPI利用StreamAPI可以像流水线一样操作处理数据源(数组、集合……)Stream自己不会存储元素Stream不会改变数据源,而是会返回一个持有处理结构的新StreamSteam操作时延迟执行的,他们会等到需要结果的时候才执行称为惰性求值Stream操作的三个步骤创建Stream......