使用excel4j生成excel文件
// 生成Excel文件供Python统计调用
public void writeCSV(List<Object[]> dataList) throws IOException{
// 构造List结果列表
List<List<String>> list2 = new ArrayList<>();
// 构造头文件
List<String> header = new ArrayList<>();
for(Object[] data : dataList){
List<String> _list = new ArrayList<>();
for(Object element : data){
_list.add(element.toString());
}
list2.add(_list);
}
for(int i = 0; i < dataList.get(0).length; i++){
header.add(String.valueOf(i));
}
// 脚本路径
StringBuilder temporaryData = new StringBuilder(System.getProperty("user.dir"))
.append("/src/main/java/com/python/data/temporaryData.xlsx");
ExcelUtils.getInstance().exportObjects2Excel(list2, header, temporaryData.toString());
}
public void calculate(List<Object[]> dataList){
int[][] pf = new int[26][4];
for(int i = 0; i < dataList.size(); i++){
Object[] data = dataList.get(i);
for(int j = 0; j < data.length; j++){
Object element = data[j];
double value = Double.valueOf(element.toString());
if(value >=0 && value < 0.5){
pf[0][j] += 1;
}else if(value >=0.5 && value < 1.5){
pf[1][j] += 1;
}else if(value >=1.5 && value < 2.5){
pf[2][j] += 1;
}else if(value >=2.5 && value < 3.5){
pf[3][j] += 1;
}else if(value >=3.5 && value < 4.5){
pf[4][j] += 1;
}else if(value >=4.5 && value < 5.5){
pf[5][j] += 1;
}else if(value >=5.5 && value < 6.5){
pf[6][j] += 1;
}else if(value >=6.5 && value < 7.5){
pf[7][j] += 1;
}else if(value >=7.5 && value < 8.5){
pf[8][j] += 1;
}else if(value >=8.5 && value < 9.5){
pf[9][j] += 1;
}else if(value >=9.5 && value < 10.5){
pf[10][j] += 1;
}else if(value >=10.5 && value < 11.5){
pf[11][j] += 1;
}else if(value >=11.5 && value < 12.5){
pf[12][j] += 1;
}else if(value >=12.5 && value < 13.5){
pf[13][j] += 1;
}else if(value >=13.5 && value < 14.5){
pf[14][j] += 1;
}else if(value >=14.5 && value < 15.5){
pf[15][j] += 1;
}else if(value >=15.5 && value < 16.5){
pf[16][j] += 1;
}else if(value >=16.5 && value < 17.5){
pf[17][j] += 1;
}else if(value >=17.5 && value < 18.5){
pf[18][j] += 1;
}else if(value >=18.5 && value < 19.5){
pf[19][j] += 1;
}else if(value >=19.5 && value < 20.5){
pf[20][j] += 1;
}else if(value >=20.5 && value < 21.5){
pf[21][j] += 1;
}else if(value >=21.5 && value < 22.5){
pf[22][j] += 1;
}else if(value >=22.5 && value < 23.5){
pf[23][j] += 1;
}else if(value >=23.5 && value < 24.5){
pf[24][j] += 1;
}else if(value >=24.5 && value < 25.5){
pf[25][j] += 1;
}
}
}
double[][] fre = new double[26][4];
for(int i = 0; i < 26; i++){
for(int j = 0 ; j < 4; j++){
fre[i][j] = (double) pf[i][j] / (double)dataList.size();
}
}
}