根据模板生成带公式的excel
将模板(带公式计算)放在项目路径下某个文件夹
//1.生成工资表excel文件FileInputStream fileInputStream = null;try {fileInputStream = new FileInputStream(request.getServletContext().getRealPath("static/template/工资条模板.xlsx"));} catch (FileNotFoundException e) {e.printStackTrace();throw new MyException("找不到工资条模板.xlsx文件");}XSSFWorkbook excel = null;try {excel = new XSSFWorkbook(fileInputStream);} catch (Exception e) {e.printStackTrace();throw new MyException("读取文件出错");}XSSFSheet sheet = excel.getSheetAt(0);//获取模板中的标题String title = sheet.getRow(0).getCell(0).getStringCellValue();//获取模板中的列名String[] rowValue1 = new String[18];String[] rowValue2 = new String[3];for (int i = 0; i< sheet.getRow(1).getPhysicalNumberOfCells() ; i++) {if(13 == i && 14 == i) {continue;}rowValue1[i] = sheet.getRow(1).getCell(i).getStringCellValue();}rowValue2[0] = sheet.getRow(2).getCell(12 ).getStringCellValue();rowValue2[1] = sheet.getRow(2).getCell(13 ).getStringCellValue();rowValue2[2] = sheet.getRow(2).getCell(14 ).getStringCellValue();String webAppPath = request.getSession().getServletContext().getRealPath("/");String uploadfilePath = webAppPath+"\\static\\temp";File uploadfile = new File(uploadfilePath);//判断文件夹是否存在,如果不存在则创建文件夹if (!uploadfile.exists()) {//先创建temp文件夹uploadfile.mkdir();}FileOutputStream fos = null;try {fos = new FileOutputStream(uploadfilePath + "\\" + p.getPersonName() + "工资表.xlsx");//创建excelWorkbook workbook = new XSSFWorkbook();//读取个人工资条模板文件,将模板复制到新建excel文件String filePath = webAppPath + "\\static\\template\\个人工资条模板.xlsx";FileInputStream tps = new FileInputStream(new File(filePath));XSSFWorkbook tpWorkbook = new XSSFWorkbook(tps);workbook = tpWorkbook;//创建sheet--子工作表Sheet sheetTemp = workbook.getSheetAt(0);//设置公式自动计算sheetTemp.setForceFormulaRecalculation(true);//设置标题sheetTemp.getRow(0).getCell(0).setCellValue(title);//设置列名for (int i = 0; i< 18 ; i++) {if(13 == i && 14 == i) {continue;}sheetTemp.getRow(1).getCell(i).setCellValue(rowValue1[i]);}sheetTemp.getRow(2).getCell(12).setCellValue(rowValue2[0]);sheetTemp.getRow(2).getCell(13).setCellValue(rowValue2[1]);sheetTemp.getRow(2).getCell(14).setCellValue(rowValue2[2]);//设置个人工资明细sheetTemp.getRow(3).getCell(0).setCellValue(1);sheetTemp.getRow(3).getCell(1).setCellValue(salarySchedule.getStaffName());sheetTemp.getRow(3).getCell(2).setCellValue(salarySchedule.getFinanAccountUnit());sheetTemp.getRow(3).getCell(3).setCellValue(salarySchedule.getBasePay());sheetTemp.getRow(3).getCell(4).setCellValue(salarySchedule.getPostWage());sheetTemp.getRow(3).getCell(5).setCellValue(salarySchedule.getAchievementBonus());sheetTemp.getRow(3).getCell(6).setCellValue(salarySchedule.getMealSupplement());sheetTemp.getRow(3).getCell(7).setCellValue(salarySchedule.getOtherWelfareCosts());sheetTemp.getRow(3).getCell(8).setCellValue(salarySchedule.getPerformanceDeductions());sheetTemp.getRow(3).getCell(9).setCellValue(salarySchedule.getDeductionsAttend());sheetTemp.getRow(3).getCell(11).setCellValue(salarySchedule.getHousingStock());sheetTemp.getRow(3).getCell(12).setCellValue(salarySchedule.getPension());sheetTemp.getRow(3).getCell(13).setCellValue(salarySchedule.getMedicalCare());sheetTemp.getRow(3).getCell(14).setCellValue(salarySchedule.getUnemployment());workbook.write(fos);fos.flush();fos.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}
根据模板生成带公式的excel相关推荐
- VUE Table复杂表格生成带格式的excel(多表头、合并单元格、边框、居中、背景)
VUE Table复杂表格生成带格式的excel(多表头.合并单元格.边框.居中.背景) 因为工作需要,在网上找了很多都不太行无意之间看到一个大佬的打码拿过来改了改居然可以用! 原文链接:https: ...
- 利用POI生成带表头的Excel
1.关于Excel版本的一点了解 在项目工作中主要使用两个版本,03版文件名以".xls"结尾,最大处理行数为65536,07版文件名以".xlsx"结尾,最大 ...
- 使用freemarker模板生成带图片的word--html格式
文章目录 前言 一.制作freemarker模板 二.修改模板 三.后台代码 四.结果 总结 前言 用户需要预览word的功能,word里面带了很多图片,本文选择生成html格式的word来提供该功能 ...
- python生成带超链接的excel表格
前提:项目里已经有函数功能将数据库数据生成excel表格 需求:将现有的excel表格数值覆盖为url超链接 利用pandas直接写入 优点: 省事,只要把数值用原始的excel函数 =HYPERLI ...
- PHP生成带图片的Excel
最近项目有这样一个需求,要导出带有设备二维码的Excel列表.这个功能此前还没有做过,于是百度了一番.网上的解决方法大多数都可以用,但是都没有封装成函数,复用性不高,于是我这里做了一下封装.具体看代码 ...
- 使用freemarker模板生成带图片的word--xml格式
文章目录 前言 一.制作freemarker模板 1. 准备模板 2.修改模板 二.后台代码 1.引入freemarker依赖 2. freemarker工具类方法 3. 测试方法 三.测试结果 总结 ...
- POI 导入带公式的EXCEL 精度出问题
用POI读EXCEL时,一定要用支持POI的函数.... poi只对excle中部分函数支持. 1.支持的函数: [ABS, ACOS, ACOSH, ADDRESS, AND, ASIN, ASIN ...
- excel 公式 单引号 concat_2019会计必备:934套带公式的实用Excel模板!【收藏】
大家好!我是高顿君. 今天给大家带来一份对工作.考证有帮助的材料: 一套完美的934个带公式Excel模板(工资绩效.社保考勤全自动生成)+400套财务Excel通用报表+50套年度财务汇报PPT模板 ...
- python打开excel的函数-Python读取excel文件中带公式的值的实现
在进行excel文件读取的时候,我自己设置了部分直接从公式获取单元格的值 但是用之前的读取方法进行读取的时候,返回值为空 import os import xlrd from xlutils.copy ...
最新文章
- 中国顶尖的技术社区们在一个群里,会聊什么…
- 关于自动驾驶汽车的7大误解
- 存在就不插入_动画:面试官问我插入排序和冒泡排序哪个更牛逼?
- 计算机创建文档教案,计算机基础知识教案
- 第11章 数据库安全性
- 超全!常见自动化运维工具全解析(含ansible、Puppet、SaltStack教程)
- ffmpeg 图像格式转换
- Windows使用思岚科技的rpLidar的A2型号
- 浅谈0-day漏洞的在野利用
- Cmake :创建vs的makefile工程(1)
- jupyter notebook 更改工作环境和浏览器
- html视频怎么自动播放一次,HTML5视频自动播放/播放一次
- TIC TAC TOE 井字游戏
- Sublime Merge中文版
- 瑞芯微RK3288处理器详细信息介绍(参数,规格,应用,差异)
- java引_JAVA中的引用
- Python笔记 Ch.13 标准库概览
- Zigbee3.0 协议特性
- php获取目录下所有文件路径(递归)
- Flutter App上架google play 流程以及遇到的坑(已经解决,App已经发布成功)
热门文章
- 如何查询社保的个人编号?
- html5 跳到拨打电话功能
- 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事(6.B)- FlexSPI NOR连接方式大全(RT500)...
- 一文读懂车联网关键技术
- 如何在 Python 中计算 MAPE
- python http proxy 驗証
- 混泥土(地面+墙面)+ 山体裂缝数据集汇总(分类及目标检测)
- 2020电赛模拟题:自制积分式直流数字电压表
- 阿里云短信验证码的坑.....
- 远动自动化工班长试题库简答(1-38)