Java学习笔记:根据Excel工资表生成工资条
生活随笔
收集整理的這篇文章主要介紹了
Java学习笔记:根据Excel工资表生成工资条
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
需求
1、一個Excel工資文件,每個Sheet是一個部門,每個部門都有員工的姓名、編號、基本工資、考勤扣款、獎金,然后生成每個員工一個工資條word文件,文件名為【部門名+姓名+員工編號】。 2、允許用戶選擇文字文件以及保存文件夾。
package Part4;import com.yzk18.docs.ExcelHelpers; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook;public class 生成工資條1 {public static void main(String[] args) {String tfile="D:\\temp\\工資條\\工資單模板.docx";String excelFile="D:\\temp\\工資條\\工資表.xlsx";Workbook workbook = ExcelHelpers.openFile(excelFile);int sheetsNum= workbook.getNumberOfSheets();for (int sheetIndex=0;sheetIndex<sheetsNum;sheetIndex++){Sheet sheet = workbook.getSheetAt(sheetIndex);String 部門名稱=sheet.getSheetName();int lastRowNum=sheet.getLastRowNum();for (int rowIndex=1;rowIndex<=lastRowNum;rowIndex++)//跳過表頭,從第一行開始{//Row row = sheet.getRow(rowIndex);String 姓名=ExcelHelpers.getCellStringValue(sheet,rowIndex,0);String 工號=ExcelHelpers.getCellStringValue(sheet,rowIndex,1);double 基本工資=ExcelHelpers.getCellDoubleValue(sheet,rowIndex,2);double 獎金=ExcelHelpers.getCellDoubleValue(sheet,rowIndex,3);double 考勤罰款=ExcelHelpers.getCellDoubleValue(sheet,rowIndex,4);double 實發(fā)工資=基本工資+獎金+考勤罰款;System.out.println(部門名稱+姓名+工號+","+基本工資+","+獎金+","+考勤罰款+","+實發(fā)工資);}}} }完整代碼
package Part4;import com.yzk18.docs.ExcelHelpers; import com.yzk18.docs.WordTemplateRenderer; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook;import java.time.LocalDate; import java.util.HashMap;public class 生成工資條1 {public static void main(String[] args) {String tfile="D:\\temp\\工資條\\工資單模板.docx";String excelFile="D:\\temp\\工資條\\工資表.xlsx";//讀取Excel文件Workbook workbook = ExcelHelpers.openFile(excelFile);int sheetsNum= workbook.getNumberOfSheets();for (int sheetIndex=0;sheetIndex<sheetsNum;sheetIndex++){Sheet sheet = workbook.getSheetAt(sheetIndex);String 部門名稱=sheet.getSheetName();int lastRowNum=sheet.getLastRowNum();for (int rowIndex=1;rowIndex<=lastRowNum;rowIndex++)//跳過表頭,從第一行開始{//Row row = sheet.getRow(rowIndex);String 姓名=ExcelHelpers.getCellStringValue(sheet,rowIndex,0);String 工號=ExcelHelpers.getCellStringValue(sheet,rowIndex,1);double 基本工資=ExcelHelpers.getCellDoubleValue(sheet,rowIndex,2);double 獎金=ExcelHelpers.getCellDoubleValue(sheet,rowIndex,3);double 考勤罰款=ExcelHelpers.getCellDoubleValue(sheet,rowIndex,4);double 實發(fā)工資=基本工資+獎金+考勤罰款;//System.out.println(部門名稱+姓名+工號+","+基本工資+","+獎金+","+考勤罰款+","+實發(fā)工資);HashMap<String,Object>data=new HashMap<>();//模板數(shù)據(jù)準備好data.put("[員工姓名]",姓名);data.put("[基本工資]",基本工資);data.put("[獎金]",獎金);data.put("[考勤罰款]",考勤罰款);data.put("[實發(fā)工資]",實發(fā)工資);data.put("[部門]",部門名稱);data.put("[工號]",工號);data.put("[日期]", LocalDate.now());String outFile="d:/temp/工資條/"+部門名稱+"-"+姓名+"-"+工號+".docx";WordTemplateRenderer.render(tfile,data,outFile);}}} }?
?
總結(jié)
以上是生活随笔為你收集整理的Java学习笔记:根据Excel工资表生成工资条的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据集Pascal VOC2012
- 下一篇: 响应面法 matlab,怎么用MATLA