本人初学者,前两天做一个将列表内容导出到excel表格操作,在生成excel表格各列数据的时候无法自动填充各列内容。后来,只好改为手动设置每行列数! 代码如下:(其中,recordsize为共有多少条记录; CustRelTo userTo 为实体类;auCustList 为列表内容) for (int i = 1; i <= recordsize; i++) {
HSSFRow fundRow = sheet.createRow(fundStartRowNo + i); //fundStartRowNo起始行号,初始值为0;
HSSFCell stkCell0 = fundRow.createCell(0); stkCell0.setCellValue(i); //第0列为序号列
if (i == recordsize) {
stkCell0.setCellStyle(stockPoolStkCellStyle.getStyleRight());
} else {
stkCell0.setCellStyle(stockPoolStkCellStyle.getStyleLeft());
}
//为 序号列 填充(1、2、3.........)
CustRelTo userTo = null;
if (auCustList != null) {
userTo = auCustList.get(i - 1);
}
//手动创建每条记录的各列,每条记录共有4列
HSSFCell cellDep=fundRow.createCell(1);
HSSFCell cellCustNo=fundRow.createCell(2);
HSSFCell cellCustName=fundRow.createCell(3);
HSSFCell cellAccount=fundRow.createCell(4);
//为各列填充内容
cellDep.setCellValue(new HSSFRichTextString(userTo.getUserBranchName()));
cellCustNo.setCellValue(new HSSFRichTextString(userTo.getCustNo()));
cellCustName.setCellValue(new HSSFRichTextString(userTo.getCustName()));
cellAccount.setCellValue(new HSSFRichTextString(userTo.getBrokerAccount()));
}
---------------------------------------------------------------------------------------
至此,功能实现是正常的。但,按照常理,应该是用for循环嵌套来自动实现 4各列的内容填充。
//recordLength=6条记录
//USER_EXP.length=4每条记录有4列的内容 for (int i = 1; i <= recordLength; i++) {
HSSFRow fundRow = sheet.createRow(fundStartRowNo + i);
/*
* 序号列的生成填充
*
*/
for(int j = 1; j <= USER_EXP.length; j++){
//自动进行单元格生成和内容填充
}
}
小弟在网上多方查询,未发现可以参考的帖子。请给位 大哥 帮忙 看看 (//自动进行单元格生成和内容填充)中应该如何来操作。
HSSFRow fundRow = sheet.createRow(fundStartRowNo + i); //fundStartRowNo起始行号,初始值为0;
HSSFCell stkCell0 = fundRow.createCell(0); stkCell0.setCellValue(i); //第0列为序号列
if (i == recordsize) {
stkCell0.setCellStyle(stockPoolStkCellStyle.getStyleRight());
} else {
stkCell0.setCellStyle(stockPoolStkCellStyle.getStyleLeft());
}
//为 序号列 填充(1、2、3.........)
CustRelTo userTo = null;
if (auCustList != null) {
userTo = auCustList.get(i - 1);
}
//手动创建每条记录的各列,每条记录共有4列
HSSFCell cellDep=fundRow.createCell(1);
HSSFCell cellCustNo=fundRow.createCell(2);
HSSFCell cellCustName=fundRow.createCell(3);
HSSFCell cellAccount=fundRow.createCell(4);
//为各列填充内容
cellDep.setCellValue(new HSSFRichTextString(userTo.getUserBranchName()));
cellCustNo.setCellValue(new HSSFRichTextString(userTo.getCustNo()));
cellCustName.setCellValue(new HSSFRichTextString(userTo.getCustName()));
cellAccount.setCellValue(new HSSFRichTextString(userTo.getBrokerAccount()));
}
---------------------------------------------------------------------------------------
至此,功能实现是正常的。但,按照常理,应该是用for循环嵌套来自动实现 4各列的内容填充。
//recordLength=6条记录
//USER_EXP.length=4每条记录有4列的内容 for (int i = 1; i <= recordLength; i++) {
HSSFRow fundRow = sheet.createRow(fundStartRowNo + i);
/*
* 序号列的生成填充
*
*/
for(int j = 1; j <= USER_EXP.length; j++){
//自动进行单元格生成和内容填充
}
}
小弟在网上多方查询,未发现可以参考的帖子。请给位 大哥 帮忙 看看 (//自动进行单元格生成和内容填充)中应该如何来操作。
解决方案 »
- 哪位大神用过xfire做webservice,帮小弟一个忙!!!!!!!
- 关于jstl迭代这样一个Map集合,如何实现?Map<String, Map<String, Object>> 求高手,不懂别参合
- dbutils 无法绑定由多个部分组成的标识符
- 调用action中的一个方法
- 聊天室中的发言是怎样同数据库同步的?是不是页面一直在刷新?
- spring中如何自己来做事务控制???
- 关于相对与绝对路径的问题?请高手指点,在线等
- 现在我手上有个项目,主要的功能是发布公司的相关信息,但有个要求就是可扩展性强,大家提点意见
- JSP中的action
- 求用java web制作的bbs论坛源码
- 求救 pushlet 的问题
- 求救,wenb开发遇到的问题
你都可以手动设置 也就是你只需要一个FOR循环的次数
你将要导出的数据对象集合的大小放在那里就行了
例如: 你要导出一个班级学生的信息,学生信息在一个ARRAYLIST里面
FOR(int i=0;i<arr.size;i++){
Student userTo = (Student)arr.get(i);
HSSFCell cellDep=fundRow.createCell(1);
HSSFCell cellCustNo=fundRow.createCell(2);
HSSFCell cellCustName=fundRow.createCell(3);
HSSFCell cellAccount=fundRow.createCell(4);
cellDep.setCellValue(new HSSFRichTextString(userTo.getUserBranchName()));
cellCustNo.setCellValue(new HSSFRichTextString(userTo.getCustNo()));
cellCustName.setCellValue(new HSSFRichTextString(userTo.getCustName()));
cellAccount.setCellValue(new HSSFRichTextString(userTo.getBrokerAccount()));
}当 cellDep.setCellValue(new HSSFRichTextString(userTo.getUserBranchName())); 加上非空判断如果是空 赋值“”就好了