[备忘]Java读取表格为属性字段

10 篇文章 0 订阅

在开发对接第三方接口过程中,经常会有以表格形式做参数说明的情况,表格示例如下:

参数类型传送标识描述
namestringm(必填)名字

使用代码将其转换为

private String name;// m(必填) 名字

思路仅供自己参考:
复制表格至excel——使用代码解析excel——获得解析的字符串并添加至类中。

1、代码所需依赖

        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.7.6</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>5.0.0</version>
        </dependency>

2、代码块如下

import cn.hutool.core.util.StrUtil;
import cn.hutool.poi.excel.ExcelReader;
import cn.hutool.poi.excel.ExcelUtil;

import java.util.List;

/**
 * @author 表格解析为属性字符串
 * @since 2022/8/22
 */
public class ParseExcelUtil {
    public static void main(String[] args) {
    	// 输入表格绝对路径
        String filePath = "D:\\xxx\\xx.xlsx";
        ExcelReader reader = ExcelUtil.getReader(filePath);
        List<List<Object>> readAll = reader.read();
        StringBuffer buffer = new StringBuffer();
        // 对表格内容进行遍历读取
        readAll.forEach(oneLine -> {
            String name = oneLine.get(0).toString();
            // 使用hutool的字符串工具将下划线命名改为驼峰命名
            name = StrUtil.toCamelCase(name);
            // 表格可能存在一行字段名开头,有多行备注的情况,这个时候做判断
            if (!buffer.toString().contains(name)) {
                buffer.append("\n").append("private ");
                String type = oneLine.get(1).toString();
                // 在文档中字段类型不规范时做转换
                switch (type) {
                    case "string":
                        type = "String";
                        break;
                    case "int":
                        type = "Integer";
                        break;
                    default:
                        type = type;
                }
                buffer.append(type).append("  ").append(name)
                        .append(";// ")
                        .append(oneLine.get(2))
                        .append("  ")
                        .append(oneLine.get(3));
            } else {
                buffer.append(oneLine.get(3).toString());
            }
        });
        System.out.println(buffer.toString());
    }
}

优化空间还很大,先备份用着

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值