将矢量类的字段写入excel文件

时间:2014-02-24 21:40:28

标签: excel vector

我正在尝试将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工作了一段时间。我们最接近的是一个结构......

1 个答案:

答案 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();