我正在尝试将4个double类型字段和1个string类型字段写入excel文件。
Vector<test_class.sigma_results> R = MainClass.calculateAllNames(R1, R2, Names);
这是计算特定股票名称所需的方法:
public sigma_results calculateSigmas(Vector<Double> r1, Vector<Double> r2, String name) {
double[] W = {3, 3, 3, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 18, 20, 22, 25};
sigma_results r = new sigma_results();
r.sigma = sumSquared(r1,20);
r.sigma_weighted_s2 = sumSquaredWeightedS2(r1, W, 20);
r.sigma_weighted_s3 = sumSquaredWeightedS3(r1, W, 20);
r.sigma_adj_weighted_s2 = sumSquaredWeightedS2(r2, W, 20);
r.sigma_adj_weighted_s3 = sumSquaredWeightedS3(r2, W, 20);
r.sigma_adj = sumSquared(r2,20);
r.name = name;
return r;
}
这是我计算宇宙中所有股票价值的地方:
public Vector calculateAllNames(Vector R1,Vector R2,Vector Names){
Vector<sigma_results> R = new Vector<sigma_results>(1000);
String current_name = "";
Vector<Double> r1 = new Vector<Double>(20);
Vector<Double> r2 = new Vector<Double>(20);
for (int idx=0; idx<Names.size(); idx++) {
if (Names.elementAt(idx).equals(current_name)) {
r1.add(R1.elementAt(idx));
r2.add(R2.elementAt(idx));
} else {
//calculation here
if (r1.size()>0) {
R.add(calculateSigmas(r1, r2, current_name));
}
r1.clear();
r2.clear();
current_name = Names.elementAt(idx);
r1.add(R1.elementAt(idx));
r2.add(R2.elementAt(idx));
}
}
return R;
}
因此,我需要将每个字段写入excel中的一列,以便我可以将输出对应于每个单独的股票名称。将这些单独的字段编写为excel的最佳方法是什么?我不确定如何首先访问它们,这是问题的一部分。面向对象编程仍然很新,因为我在MATLAB工作了一段时间。我们最接近的是一个结构......
答案 0 :(得分:0)
Vector类让我觉得这是Java。我不太确定你想写什么字段到Excel(我猜的是股票的名称和一些r.sigma ...值。
我可能会写一个Comma separated values file。像这样的东西:
PrintWriter writer = new PrintWriter("c:\\export.csv", "UTF-8");
for(sigma_results s : R){
string oneLine = s.name + "," + s.firstField + "," s.secondField + "," + s.thirdField + "," + s.fourthField;
// write the line to the file
writer.println(oneLine);
}
writer.close();