java - 为什么我只得到最后一行充满 Apache POI?
问题描述
我将解释一下该程序的作用:它只是获取一个带有心理学或其他类型测试的 JSON 文件并进行更正。您可以创建具有不同区域或子集的测试,并使用它们自己的校正和百分比尊重总数。稍后,它会询问用户是否要将数据保存在 xsls 文件中以供进一步分析。
我正在尝试使用一些用户信息来填充和超越。问题是,我只得到每个子集的最后一个答案和分数。似乎行被覆盖或其他东西。
一些代码:
这是被调用的方法:
public void subsetWriter(String userName, RandomTest t, Corrector c) {
Workbook subsetWorkbook = new XSSFWorkbook();
Sheet sheet = subsetWorkbook.createSheet(userName);
styleCreation(sheet);
Row headerRow = sheet.createRow(0);
Row titleRow = sheet.createRow(1);
for (int i = 2; i < t.getQuestions().size() + 2; i++) {
punctuations = sheet.createRow(i);
}
Cell subsetHeader;
Cell scoreTitle;
Cell answerTitle;
sheet.addMergedRegion(new CellRangeAddress(0, 0, 1, 2));
sheet.addMergedRegion(new CellRangeAddress(0, 0, 3, 4));
sheet.addMergedRegion(new CellRangeAddress(0, 0, 5, 6));
int plusTwoCounter = -1;
for (int i = 0; i < c.getSubsetNames().size(); i++) {
subsetHeader = headerRow.createCell(plusTwoCounter + 2);
subsetHeader.setCellValue(c.getSubsetNames().get(i));
subsetHeader.setCellStyle(headerStyle);
scoreTitle = titleRow.createCell(plusTwoCounter + 2);
scoreTitle.setCellValue(COLUMN1);
scoreTitle.setCellStyle(titleStyle);
answerTitle = titleRow.createCell(plusTwoCounter + 3);
answerTitle.setCellValue(COLUMN2);
answerTitle.setCellStyle(titleStyle);
fillSubset(i, t.getSubsets().get(c.getSubsetNames().get(i)), t.getSubsets().get(c.getSubsetNames().get(i)), punctuations);
plusTwoCounter += 2;
}
rowResization(sheet, 1, 7);
saveFile(subsetWorkbook, userName);
}
填充子集的辅助静态方法:
private static void fillSubset(int subsetPosition, ArrayList<Question> scores, ArrayList<Question> answers, Row punctuations) {
Integer[] scorePositions = {1, 3, 5, 7, 9};
Integer[] answerPositions = {2, 4, 6, 8, 10};
Cell scoreCell;
Cell answerCell;
for (int j = 0; j < scores.size(); j++) {
scoreCell = punctuations.createCell(scorePositions[subsetPosition]);
scoreCell.setCellValue(scores.get(j).getScore());
answerCell = punctuations.createCell(answerPositions[subsetPosition]);
answerCell.setCellValue(answers.get(j).getUserAnswer());
}
}
Score 和 Answer 是 Question 的类属性,这些 Question 对象列表来自一个 HashMap,其中包含子集名称及其对应的问题列表。
我希望我说清楚了,提前非常感谢!
解决方案
推荐阅读
- django - 如何在 django 的核心模型中添加“unique_together”约束?
- c# - n个sql交集
- c# - C# 有没有办法将 DllImport 与泛型方法类型一起使用?
- sql - 如何选择具有唯一列值的 N 最近行
- r - Shiny中的动态文本框列表
- mysql - 无法使用 MySQL Workbench 运行脚本
- r - 在 mutate_all 的函数内部使用 one_of/vars
- google-cloud-platform - 我可以使用 API 获取堆栈驱动程序策略事件吗?
- javascript - JS下拉插入符号动画中断输入
- windows - Windows 10 Pro 上的 Julia 可以运行 DSP 应用程序吗?