poi学习知识点

首先分析模板:
两个sheet页,sheet1,sheet2
sheet1上半部分为表格形式,下半部分为数据列表形式
sheet2就是一个统计
//把需要用的捋顺:1.字体标红 2.合计公式
用二维数组给所填表格划定坐标
int[][] cellIndex= {{0,0},{1,2},{1,5},{1,11},{2,2},{2,5},{2,11},{3,2},{3,5},{3,11},{4,2},{4,5}}
与之对应的变量为:
String[] headers = {“titleName”, “bidSn”,“companyName”,“bidCompanyName”,“bidStatus”,“bidTime”,“validEndTime”,“bidTotalOrderMoney”,“bidTotalGoodsMoney”,“bidTotalOffMoney”,“bidUserName”,“remark”};

列表的数据头标识
String[] headerCodes = {“xvhao”,“brandName”,“cateName”,“goodsType”,“goodsName”,“bidStatus”,“units”,“requestAmount”,“bidCostPrice”,“bidDiscount”,“bidDiscountPrice”,“bidOffGoodsMoney”,“bidGoodsPrice”,“bidTotalGoodsMoney”,“remark”};
数据源为list集合:dataset
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&开始码代码&&&&&&&&&&&&&&&&&&&&&&&&
String excel = “/static/excel/BJDMB.xls” ;
Resource resource = new ClassPathResource(excel);
InputStream is = new FileInputStream(resource.getFile());
// 读取一个本地工作薄模板
workbook = new HSSFWorkbook(is);
//读取两个sheet页
HSSFSheet sheet = workbook.getSheetAt(0);
HSSFSheet sheet2 = workbook.getSheetAt(1);
//下一步
通过循环遍历每一个cell单元格,并赋值
for (int i = 0; i < cellIndex.length; i++) {
HSSFRow row = sheet.getRow(cellIndex[i][0]);//行
HSSFCell cell = row.getCell(cellIndex[i][1]);//行中的单元格
String value = map.get(headers[i]) !=null ? String.valueOf(map.get(headers[i])):"";
if (value != null) {
// 判断插入值是否为数字
if (isNumber(value)) {
// 是数字当作double处理
cell.setCellValue(Double.parseDouble(value));
} else {
cell.setCellValue(new HSSFRichTextString(value));
}
}
}
开始sheet2
// 获取将要写入行的rowStyle
HSSFRow rowStyle = sheet2.getRow(0);
// 定义开始动态写入的行号
int index = 7;
// 遍历集合数据,产生数据行
Iterator it = dataset.iterator();
T t;
HSSFRichTextString richString;
Field field;
String fieldName;
String getMethodName;
HSSFCell cell;
Class tCls;
Method getMethod;
Object value;
String textValue;
SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
int xvhao = 1;
StringBuilder sumFormula1 = new StringBuilder(“SUM(”);
HSSFRow row;

CellRangeAddress region = new CellRangeAddress(a, b, c, d);
合并单元格:a:起始行,b:终止行,c:起始列,d:终止列
sheet.addMergedRegion(region);//注册生效
//excel设置公式自动计算
sheet.setForceFormulaRecalculation(true);

sheet1
sheet2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值