2021.8.19
上次实现了批量导入,最近太忙拖到现在才更新
2021.8.13
实习期间导师给我分配了个小任务
把xml文件中的字段内容腾到excel中,中间涉及一些对于数据的分析抽取等,但都有规可循,有道是 懒是编程发展的原动力,所以我自己做了一个小demo实现了以上功能的自动化
实现效果
xml文件大致是这样的
手动录入大致是这样的
程序实现
控制台输出
写入文件
我把整个功能剖成三部分
- Java解析XML文件
- 源数据到填入Excel数据的转换
- 自动写入Excel
Java解析XML文件
先来看Java解析XML文件的部分,Java解析XML文件的方式有四五种,我这里是通过DOM4J实现的
1.先导入Maven依赖
<!-- dom4j -->
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
2.编写实体类
为了方便后续的操作,我写了个实体类存储从xml中读取出来的数据
get set 和 tostring 方法太长了,就不再列出来了
package com.hao.pojo;
public class Data {
private String id;
private String fieldName;
private String note;
private String parentid;
private String parentValue;
private String defaultValue;
private String name;
private String value;
private int sortNum;
public String getId() {
return id;
}
}
3.解析xml文件的方法
//从xml获取数据
public List<Data> getDataList(File file){
List<Data> dataList = null;
Data data = new Data();
//搜索优先级
int sortNum = 0;
//创建一个SAXReader对象
SAXReader reader = new SAXReader();
try {
Document document = reader.read(file);
//获取根节点
Element eumpGroup = document.getRootElement();
List<Attribute> groupAttributes = eumpGroup.attributes();
dataList = new ArrayList<Data>();
Iterator gruopit = eumpGroup.elementIterator();
while(gruopit.hasNext()){
data = new Data();
for (Attribute groupAttribute:groupAttributes){
if (groupAttribute.getName().equals("id")){
String id = groupAttribute.getValue();
data.setId(id);
}else if(groupAttribute.getName().equals("fieldName")){
String fieldName = groupAttribute.getValue();
data.setFieldName