求助java.lang.ArrayIndexOutOfBoundsException: 1数组越界
代码如下:
<%@ page contentType="text/html;charset=GBK" language="java" %>
<%@ include file="/pages/include/taglib.jsp" %>
<%@ page import="java.io.File" %>
<%@ page import="jxl.Workbook" %>
<%@ page import="jxl.write.*" %>
<%@ page import="com.hr319wg.util.CommonFuns" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.Random" %>
<%@ page import="java.text.DecimalFormat" %>
<%@ page import="com.bjzr.review.pojo.vo.ScaleSetInfoVO" %>
<%@ page import="com.bjzr.review.service.reviewExpertService" %>
<%@ page import="com.hr319wg.common.web.SysContext" %>
<%@ page import="com.bjzr.review.pojo.bo.*" %>
<%
reviewExpertService expertService = (reviewExpertService) SysContext.getBean("reviewExpertService");
%>
<%
try {
String mode = request.getParameter("mode");
List listGroup = (List) session.getAttribute("listGroup");
String fileName = CommonFuns.getSysDate("yyyyMMddHHmmss") + new Random().nextInt(10000) + ".xls";
String url = request.getContextPath() + "/file/tmp/" + fileName;
String path = application.getRealPath("/") + File.separator + "file" + File.separator + "tmp" + File.separator + fileName;
File excelFile = new File(path);
if (!excelFile.exists()) {
excelFile.createNewFile();
}
WritableWorkbook wbook = Workbook.createWorkbook(excelFile);
WritableSheet wsheet = wbook.createSheet("评分", 0);
WritableFont wfont = new WritableFont(WritableFont.ARIAL, 10, WritableFont.BOLD, false, jxl.format.UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
WritableCellFormat titleFormat = new WritableCellFormat(wfont);
if ("expert".equals(mode)) {
int k = listGroup.size() + 6;
String[] headers = new String[k];
headers[0] = "签号";
headers[1] = "小组";
headers[2] = "日期";
headers[3] = "时间";
int num = 4;
for (int i = 0; i < listGroup.size(); i++) {
reviewExpertBO bo = (reviewExpertBO) listGroup.get(i);
headers[num] = bo.getName();
num++;
}
headers[num] = "总分";
headers[num + 1] = "平均分";
for (int i = 0; i < headers.length; i++) {
Label excelTitle = new Label(i, 0, headers[i], titleFormat);
wsheet.addCell(excelTitle);
}
List personList = (List) session.getAttribute("personList");
reviewScore rs0 = new reviewScore();
for (int i = 0; i < personList.size(); i++) {
List applyList = (List) personList.get(i);
if(applyList.size()==0){
rs0 = new reviewScore();
} else {
rs0 = (reviewScore) applyList.get(0);
}
GroupPersonItemBO personItemBO= expertService.findGroupPersonItemBOByApplyItemId(rs0.getApplyItemId());
auditGroupBO groupBO= expertService.findAuditGroupBOById(personItemBO.getGroupId());
String date = "";
String time = "";
if (personItemBO.getSeqDate() != null) {
String[] dateTime = personItemBO.getSeqDate().split(" ");
date = dateTime[0];
time = dateTime[1];
}
Double totalNum = 0.0;
Double aveNum = 0.0;
int nums = i + 1;
Label content3 = new Label(0, nums, personItemBO.getSeq());
Label content4 = new Label(1, nums, groupBO.getGroupName());
Label content5 = new Label(2, nums, date);
Label content6 = new Label(3, nums, time);
wsheet.setColumnView(1,18);
wsheet.setColumnView(2,18);
wsheet.addCell(content3);
wsheet.addCell(content4);
wsheet.addCell(content5);
wsheet.addCell(content6);
int numJ = 4;
for(int f=0;f<listGroup.size();f++){
reviewExpertBO bo = (reviewExpertBO) listGroup.get(f);
int tt=0;
for (int j = 0; j < applyList.size(); j++) {
reviewScore rs = (reviewScore) applyList.get(j);
if(rs.getAuditPid().equals(bo.getItemID())){
totalNum += Double.parseDouble(rs.getScore());
tt++;
Label content7 = new Label(numJ, nums, rs.getScore());
wsheet.addCell(content7);
}
}
if(tt==0){
Label content8 = new Label(numJ, nums, "0");
wsheet.addCell(content8);
}
numJ ++;
}
DecimalFormat df = new DecimalFormat("######0.00");
aveNum = totalNum / applyList.size();
Label content11 = new Label(numJ, nums, String.valueOf(totalNum));
Label content12 = new Label(numJ + 1, nums, String.valueOf(df.format(aveNum)));
wsheet.addCell(content11);
wsheet.addCell(content12);
}
} else {
if ("temp".equals(mode)) {
ScaleSetInfoVO infoVo = (ScaleSetInfoVO) session.getAttribute("infoVo");
String[] headers = {"姓名", "分组", "日期", "时间", "学历", infoVo.getTitle2(), infoVo.getTitle3(), infoVo.getTitle4(), infoVo.getTitle5(), infoVo.getTitle6(),
infoVo.getTitle7(), infoVo.getTitle8(), infoVo.getTitle9(), infoVo.getTitle10(), infoVo.getTitle11(), "总分"};
for (int i = 0; i < headers.length; i++) {
Label excelTitle = new Label(i, 0, headers[i], titleFormat);
wsheet.addCell(excelTitle);
}
List list = (List) session.getAttribute("list");
String groupName = (String) session.getAttribute("groupName");
int num = 1;
for (int i = 0; i < list.size(); i++) {
reviewScaleScore rs = (reviewScaleScore) list.get(i);
/* Double totalNum = 0.0;
totalNum = Double.parseDouble(rs.getScore1()) + Double.parseDouble(rs.getScore2()) + Double.parseDouble(rs.getScore3()) + Double.parseDouble(rs.getScore4())
+ Double.parseDouble(rs.getScore5()) + Double.parseDouble(rs.getScore6()) + Double.parseDouble(rs.getScore7()) + Double.parseDouble(rs.getScore8()) + Double.parseDouble(rs.getScore9())
+ Double.parseDouble(rs.getScore10()) + Double.parseDouble(rs.getScore11()) + Double.parseDouble(rs.getScore12()) + Double.parseDouble(rs.getScore13())
+ Double.parseDouble(rs.getScore14()) + Double.parseDouble(rs.getScore15());*/
String dateStr1 = "";
String dateStr2 = "";
if (null != rs.getSaveDate()) {
String[] dateStr = rs.getSaveDate().split(" ");
dateStr1 = dateStr[0];
dateStr2 = dateStr[1];
}
//第一个参数表示列,第二个表示行
Label content = new Label(0, num, rs.getPersonName());
Label content1 = new Label(1, num, groupName);
Label content2 = new Label(2, num, dateStr1);
Label content3 = new Label(3, num, dateStr2);
Label content4 = new Label(4, num, rs.getScore1());
Label content5 = new Label(5, num, rs.getScore2());
Label content6 = new Label(6, num, rs.getScore3());
Label content7 = new Label(7, num, rs.getScore4());
Label content8 = new Label(8, num, rs.getScore5());
Label content9 = new Label(9, num, rs.getScore6());
Label content10 = new Label(10, num, rs.getScore7());
Label content11 = new Label(11, num, rs.getScore8());
Label content12 = new Label(12, num, rs.getScore9());
wsheet.addCell(content);
wsheet.addCell(content1);
wsheet.addCell(content2);
wsheet.addCell(content3);
wsheet.addCell(content4);
wsheet.addCell(content5);
wsheet.addCell(content6);
wsheet.addCell(content7);
wsheet.addCell(content8);
wsheet.addCell(content9);
wsheet.addCell(content10);
wsheet.addCell(content11);
wsheet.addCell(content12);
num++;
}
}
}
wbook.write(); //写入文件
wbook.close();
response.sendRedirect(url);
} catch (Exception e) {
e.printStackTrace();
}
%>