2 sinat 33415638 sinat_33415638 于 2016.01.29 10:06 提问

小白问题,调用方法的求和问题

想实现分日期累加求和并添加到excel中, 可是传到excel中的数据把每一天的数据都打出来了。帮忙看一下问题出在哪了?我感觉我这个写法,循环内每次执行存的都是一个新的数组里,循环到下一次就跟这次的没关系了
public void processSum(XSSFRow inputRow, XSSFRow outputRow)
throws IOException {
double sum = 0;
double a = 0;
String cellValue = "";
SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");
Date date = inputRow.getCell(
Integer.parseInt(source.getProperty("日期列")) - 1)
.getDateCellValue();
cellValue = formatter.format(date);
ArrayList date1 = new ArrayList();
ArrayList value1 = new ArrayList();
ArrayList date2 = new ArrayList();
ArrayList value2 = new ArrayList();
value1.add(inputRow.getCell(
Integer.parseInt(source.getProperty("求和列")) - 1)
.getNumericCellValue());
date1.add(cellValue);
for (int c = 0; c < date1.size(); c++) {
try {
if (date1.get(c).equals(date1.get(c + 1))) {
a = value1.get(c);
sum = a + sum;
} else {
a = value1.get(c);
sum = a + sum;
date2.add(date1.get(c));
value2.add(sum);
sum = 0.0;
}
} catch (Exception e) {
a = value1.get(c);
sum = a + sum;
date2.add(date1.get(c));
value2.add(sum);
}
}
for (int k = 0; k < date2.size(); k++) {
outputRow.createCell(14).setCellValue(value2.get(k));
outputRow.createCell(3).setCellValue(date2.get(k));
outputRow.createCell(4).setCellValue(date2.get(k));
}
}

主函数里的方法,调用的processSum求和方法

    for (i = o; i < lastnum; i++) {
            XSSFRow readrow = readsheet.getRow(i);// 获取输入行
            Process p = new ProcessRow();
            if (p.panduan2(readrow)) {
                XSSFSheet sheet = sc.getSheetAt(0);
                XSSFRow outputrow = sheet.createRow(j++);
                p.processSum(readrow, outputrow);
            }
        }

1个回答

caozhy
caozhy   Ds   Rxr 2016.01.29 10:20

贴出你的excel的文件内容,你需要获取什么,你现在获取的是什么

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
2K11问题小白咨询秘笈
2K11问题小白咨询秘笈2K11问题小白咨询秘笈2K11问题小白咨询秘笈2K11问题小白咨询秘笈2K11问题小白咨询秘笈2K11问题小白咨询秘笈2K11问题小白咨询秘笈2K11问题小白咨询秘笈
给小白程序员的几点建议
接纳自己是一张白纸这个事实       我觉得这是一个首要的前提。也许你很优秀,有很强的学习能力,有强大的信念,有超强的小宇宙,有百折不挠的韧性……但是,你没做过,你确实是一张白 纸。这是一个客观事实,我们必须要要承认。我们所做的一切,都是在接纳现实的前提下展开的,唯有承认这一点,其它美好的事情才有可能。       我们平静的看待这一点,不要妄自菲薄,也不要好高骛远,从一条线开始,慢慢绘制自己的
【网络流】最大流:点带需求的流通、边带下界的流通
1)点带需求的流通: 新的框架特点:有多个供给点(d(v)0),都称作汇点。同时仍然满足传统最大流中的容量条件(0 需要解决的问题:由于有多个源点和汇点,所以不再考虑最大化问题,而是考虑有没有满足容量条件和需求条件的一个可行流通(可行性)。 判断可行性的方法是,把带需求{ d(v) }的可行流通问题转换为在另一个网络中找最大 s-t 流的问题。另一个网络的构造方法如下:
ACM sum 求和问题(关于问题中的存储限制)
Problem Description In this problem, your task is to calculate SUM(n) = 1 + 2 + 3 + ... + n.Input The input will consist of a series of integers n, one integer per lineOutput For each case, output SUM(
lintcode 骰子求和
/* 今天被问到了一道lintcode上的题目,然而想了好久才想明白,看来在STL处折腾得太久,当初看《挑战》时,粗浅地学的一点点动态规划,已经忘得所剩无几了... 这几天开始上课了,写acm题的时间又被压缩,不过还是尽力每天至少做一道算法题,保持题感。 此外,最近开始学java,偶尔也发些java的代码到博客,由于刚入门java,代码会比较简单,不过还是争取每天保证相当的代码量,
南阳理工ACM 题目22 素数求和问题
素数求和问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:2      描述 现在给你N个数(0<N<1000),现在要求你写出一个程序,找出这N个数中的所有素数,并求和。      输入 第一行给出整数M(0 每组测试数据第一行给你N,代表该组测试数据的数量。 接下来的N个数为要测试的数据,每个数小于1000      输出 每组测试数据
NYOJ 22 素数求和问题
素数求和问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述现在给你N个数(0<N<1000),现在要求你写出一个程序,找出这N个数中的所有素数,并求和。 输入第一行给出整数M(0 每组测试数据第一行给你N,代表该组测试数据的数量。 接下来的N个数为要测试的数据,每个数小于1000 输出每组测试数据结果占一行,输出给出的测试数
Java递归解决子集求和问题
子集求和问题属于难以高效解决的计算问题中的一类,用于以信息保密为目标的应用中。子集求和问题的定义为:给定一个整数集和目标值,确定是否可以找到这些整数的一个子集,使其总和等于指定的目标值。比如给定集合{-2,1,3,8}和目标值7,那么问题的答案就是是,因为有子集{-2,1,8}加起来对于7。但是如果目标值是5,答案就为否。所以我们很容易定义出递归函数原型:boolean subsetSumExis...
python小白遇到的问题及解决方案
1.在import turtle库时出现如下问题解决办法:退出Python环境,然后输入如下代码 sudo apt-get install python-tk,即可解决。2.解决办法:init函数前不是单下划线而是双下划线,修改之后,运行正常。...
【数位计数问题】之【按位求和】
按位求和问题来源高逸涵《数位计数问题解法研究》 由于自己的数位计数类的问题实在太差了,所以把例1用markdown抄写了一遍。题意给定A,B(A,B≤1015)A,B(A,B\leq 10^{15}),求[A,B][A,B]内的所有数的KK进制表示下各数位之和。(2≤K≤10)(2\leq K\leq 10)分析首先,如果能找到方法计算[0,B][0,B]的答案,那么同理计算[0,A−1][0,A