java中怎么把List集合存成Excel表格
3个回答
展开全部
首先这个List尽量是Object类型的,也就是:List<Object[]> list
其次就是开始遍历这个list
int currentRowNum = startRowNum-1;//从第几行开始写
int currentColNum = startColNum-1;//从第几列开始写
for (Object[] objects : list) {//遍历list
XSSFRow row = sheet.createRow(currentRowNum);//一个list就是一行,创建一个行
for (Object object : objects) {//遍历每一个list的Object[]数组
if (object==null) {
XSSFCell cell = row.createCell(currentColNum++, XSSFCell.CELL_TYPE_BLANK);//如果该单元格为空,则创建一个空格子,不然数据会移位
cell.setCellValue("");//将这个空格设置为空字符串
}else if(object instanceof Double || object instanceof Float){//判断这个格子放的数据的类型,其他的同理
XSSFCell cell = row.createCell(currentColNum++, XSSFCell.CELL_TYPE_NUMERIC);//如果是Double或者Float类型的,则用这个方式
cell.setCellValue(Double.parseDouble(object.toString()));
}else if(object instanceof Long || object instanceof Integer){
XSSFCell cell = row.createCell(currentColNum++, XSSFCell.CELL_TYPE_NUMERIC);
cell.setCellValue(Double.parseDouble(object.toString()));
}else if(object instanceof Date){
XSSFCell cell = row.createCell(currentColNum++, XSSFCell.CELL_TYPE_STRING);
cell.setCellValue(new SimpleDateFormat("dd-MM-yyyy").format((Date)object));
}else if(object instanceof Boolean){
XSSFCell cell = row.createCell(currentColNum++, XSSFCell.CELL_TYPE_BOOLEAN);
cell.setCellValue((Boolean)object);
}else{
XSSFCell cell = row.createCell(currentColNum++, XSSFCell.CELL_TYPE_STRING);
cell.setCellValue(String.valueOf(object));
}
}
currentRowNum++;//写完第一个list,跳到下一行
currentColNum = startColNum-1;
}
这种是poi操作EXCEL的方法哈。。
jxl操作略有不同。
其次就是开始遍历这个list
int currentRowNum = startRowNum-1;//从第几行开始写
int currentColNum = startColNum-1;//从第几列开始写
for (Object[] objects : list) {//遍历list
XSSFRow row = sheet.createRow(currentRowNum);//一个list就是一行,创建一个行
for (Object object : objects) {//遍历每一个list的Object[]数组
if (object==null) {
XSSFCell cell = row.createCell(currentColNum++, XSSFCell.CELL_TYPE_BLANK);//如果该单元格为空,则创建一个空格子,不然数据会移位
cell.setCellValue("");//将这个空格设置为空字符串
}else if(object instanceof Double || object instanceof Float){//判断这个格子放的数据的类型,其他的同理
XSSFCell cell = row.createCell(currentColNum++, XSSFCell.CELL_TYPE_NUMERIC);//如果是Double或者Float类型的,则用这个方式
cell.setCellValue(Double.parseDouble(object.toString()));
}else if(object instanceof Long || object instanceof Integer){
XSSFCell cell = row.createCell(currentColNum++, XSSFCell.CELL_TYPE_NUMERIC);
cell.setCellValue(Double.parseDouble(object.toString()));
}else if(object instanceof Date){
XSSFCell cell = row.createCell(currentColNum++, XSSFCell.CELL_TYPE_STRING);
cell.setCellValue(new SimpleDateFormat("dd-MM-yyyy").format((Date)object));
}else if(object instanceof Boolean){
XSSFCell cell = row.createCell(currentColNum++, XSSFCell.CELL_TYPE_BOOLEAN);
cell.setCellValue((Boolean)object);
}else{
XSSFCell cell = row.createCell(currentColNum++, XSSFCell.CELL_TYPE_STRING);
cell.setCellValue(String.valueOf(object));
}
}
currentRowNum++;//写完第一个list,跳到下一行
currentColNum = startColNum-1;
}
这种是poi操作EXCEL的方法哈。。
jxl操作略有不同。
追问
我要存的是两列String字符,该怎么写呢?
追答
直接把我的Object[] 改成String[]。然后把下面的if全部删掉,只要XSSFCell cell = row.createCell(currentColNum++, XSSFCell.CELL_TYPE_STRING)
因为你已经明确知道了要写入的类型是String类型的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用jxl.jar工具进行Excel的生成
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
遍历写入excel文件。
追问
能有有详细一点的回答吗?最好是有关键代码的·······
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询