gpt4 book ai didi

java - 如何使用一些自定义配置设置属性文件

转载 作者:行者123 更新时间:2023-11-30 05:37:48 25 4
gpt4 key购买 nike

我有一个使用 Apache POI 从 Excel 文件中读取值的代码,该 Excel 文件的内容是一个包含多列和多行的大表,并且有许多具有相同结构(列数)的 Excel 文件,有时可能有不同的列名和不同的列值。

我的要求之一是摄取两种不同数据类型的所有数据,一种是 Float 类型的数值数据,另一种是字符串形式的文本值。

问题 1:如何将此逻辑传递到属性文件中,这样每次我需要解析 Excel 文件时,它都可以获取外部文件,并为每列提供正确的数据类型集?

问题2:在下面的方法中,我将列位置设置为识别位置的键,但我认为将列名称作为键而不是数值要好得多,在这种情况下更快读取属性文件并根据列名称设置数据类型值。

目前,我使用以下逻辑来修复列位置,其数据类型为字符串或浮点型,对于一个特定的 Excel 文件来说它很好。

     String filePath;
String fileProcessingType;

Map<Integer, List<MergeCellRange>> mergeCellMap = new HashMap<>();
Map<Integer, String> columnHeaderMap = new HashMap<>(););

static NavigableMap<Integer, String> columnTypeMap = null; // map is used to identify the column
// types of each parameter
static {
columnTypeMap = new TreeMap<Integer, String>();
columnTypeMap.put(0, "String");
columnTypeMap.put(1, "String"); // 1 TimeStamp as String
columnTypeMap.put(2, "String"); // 2-66 String
columnTypeMap.put(66, "String"); // 66 String
columnTypeMap.put(67, "Float"); // 67-88 String
columnTypeMap.put(89, "String"); // 89-90 String
columnTypeMap.put(113, "String"); // 114....
}

所以我的想法是拥有一个像这样的属性文件:

 Column0=String
Column1=String
Column2=Float
Column3=String
Column4=Float
Column5=Float
Column6=String
...

然后调用属性文件将其挑选出来:

FileInputStream newFile = new FileInputStream("dataType.properties");

Properties mappingFile = new Properties();
mappingFile.load(newFile);

mappingFile.load(newFile);

List = mappingFile.getProperties().list(System.out);

static NavigableMap<List> columnTypeMap = null;
// map is used to identify the column

最佳答案

try(FileInputStream newFile=new FileInputStream("dataType.properties")) {
Properties mappingFile =new Properties();
mappingFile.load(newFile);
mappingFile.forEach((c,t)-> {
columnTypeMap.put(Integer.parseInt(((String)c).substring("Column".length())),(String)t);
});
}
catch(Exception ex) {
System.error.println(ex);
}

PS:您可以将属性写为

00=String
01=Float
02=...

并将映射部分减少为

    columnTypeMap.put(Integer.parseInt((String)c),(String)t);

关于java - 如何使用一些自定义配置设置属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56267443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com