JAVA使用poi包,向Excel中写入批量数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA使用poi包,向Excel中写入批量数据相关的知识,希望对你有一定的参考价值。
有一个数据库的表,字段都是String,取一下字段写入Excel中
学号 姓名 学院 专业 班级 年龄 地址 ······
1 小铭 信息学院 计算机系 计算机(1)班 19 北京中关村 ······
2 小花 艺术学院 音乐系 音乐表演(1)班 18 北京王府井大街 ······
3 小小 信息学院 计算机系 计算机(1)班 21 北京中关村 ······
4 小牛 信息学院 计算机系 计算机(2)班 19 上海浦东 ······
································································································
································································································
怎么使用比较简单的代码(如循环、递归),用JAVA语言读取数据库,并写入Excel中?
求源程序或核心代码。
满意追加20~100财富。
补充:字段可能为10个左右,但用户信息可能达到100~1000条
(如果使用jxl包更简单也可以。其实我对Excel操作不了解,也不知道哪个包比较好用)
List<Object[]> exList =(List<Object[]>)exlList;
int len = exList.get(0).length;
// 创建一个sheet表单
HSSFSheet sheet = wb.createSheet(sheetName);
Region region = null;
//样式
HSSFCellStyle cellStyle1 = setStyleBorder(wb);
HSSFCellStyle cellStyle2 = setStyleFontBorder(wb);
// 创建标题行
HSSFRow row = sheet.createRow(0);
row.setHeight((short)500);
// 创建单元格
HSSFCell cell = null;
if(title != null && !"".equals(title))
region = new Region(0, (short)0, 0, (short)(len- 1));
sheet.addMergedRegion(region);
cell = row.createCell(0);
// 标题写入单元格
cell.setCellValue(title);
cell.setCellStyle(setStyleFontSize(wb, 18));
else
n = n - 1;
NumberFormat formatter = NumberFormat.getNumberInstance();
formatter.setMaximumFractionDigits(8);
//合计信息
Double[] sum = new Double[len];
Object[] s = null;
for(int i = 0; i < exList.size(); i++)
s = exList.get(i);
row = sheet.createRow(i + n);
// 创建数据行
for(int j = 0; j < s.length; j++)
cell = row.createCell(j);
/***
* jobin create
*/
if(s[j] instanceof Integer || s[j] instanceof Float)
cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
else
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
if(!StringUtils.isNotEmpty(s[j]))
cell.setCellStyle(cellStyle1);
continue;
String[] rs = null;
int l = 3000;
if(i == 0 && s[j].toString().indexOf(",") > 0)
rs = s[j].toString().split(",");
cell.setCellValue(rs[0]);
l = Integer.parseInt(rs[1]);
else
cell.setCellValue(s[j].toString());
if(i == 0)
cell.setCellStyle(cellStyle2);
//设置列宽
// if(j == 0)
sheet.setColumnWidth(j, l);
// else if(j == s.length -1)
// sheet.setColumnWidth(j, 5000);
// else
// sheet.setColumnWidth(j, 3000);
//
else
cell.setCellStyle(cellStyle1);
//合计统计
if(index != null)
for(int in : index)
if(in == j)
if(sum[in] == null) sum[in] = 0.0;
sum[in] += Double.parseDouble(s[j].toString());
//合计信息
if(index != null)
region = new Region(exList.size() + 1, (short)0, exList.size() + 1, (short)(index[0]-1));
sheet.addMergedRegion(region);
row = sheet.createRow(exList.size() + n);
for(int i = 0; i < sum.length; i++)
cell = row.createCell(i);
cell.setCellStyle(cellStyle2);
if(i == 0)
cell.setCellValue("合计");
else if(sum[i] != null)
cell.setCellValue(formatter.format(sum[i]).replace(",", ""));
核心代码,我项目上使用的本回答被提问者和网友采纳
以上是关于JAVA使用poi包,向Excel中写入批量数据的主要内容,如果未能解决你的问题,请参考以下文章