日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用java的姿势完善【年、月、周】个人工作量总结

發布時間:2023/12/10 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用java的姿势完善【年、月、周】个人工作量总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

整理個人工作量

      • 前提
      • 過程
        • 1、從周報或者月報中復制個人記錄
        • 2、整理成txt文件,每行開頭和結尾皆不需要特殊處理,只保留工作內容即可
        • 3、思考excel的版面及一些固定信息
        • 4、java代碼開發
        • 5、代碼獻上

前提

年度到了,需要上交自己的個人工作量excel文件了,因為一年來干的事情太多太細了,所以準備使用java來將這一年的工作記錄總結到excel中

過程

1、從周報或者月報中復制個人記錄

2、整理成txt文件,每行開頭和結尾皆不需要特殊處理,只保留工作內容即可

如:

今天摸魚
今日劃水
今日專心工作

3、思考excel的版面及一些固定信息

如下:
1)紅色是固定格式不需要填寫,excel下拉即可全部復制
2)綠色是需要填寫的工作內容,【上面的今日摸魚等信息】

4、java代碼開發

整體思路如下:

1.將這一年的工作日整理出列表【節假日不寫工作內容】
2. 讀取提交準備好的工作內容txt文件
3. 從指定的excel文件中寫入循環第二步的內容【節假日跳過】

5、代碼獻上

只要文件都準備好,可直接運行~😊

package person.keino.OperatExcelPrac;import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook;import java.io.*; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*;/*** @Classname OperaExcel* @Description TODO* @Date 2021-06-07 11:30* @Created by keino*/ public class OperaExcel {//提前自定義的一些日期,比如每年五一、國慶等不屬于周六周日但是依舊是休息日的多個日期final static String[] commonHolidays = {"20211001","20211002","20211003","20211004","20211005","20211006","20211007"};//將定義好的日期 放入 holidaySetfinal static HashSet<String> holidaySet = new HashSet<String>(Arrays.asList(commonHolidays));//工作日集合final static HashSet<String> workdaySet = new HashSet<>();final static SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");/*** 統計從【date】開始,之后【length】天中的工作日* @param date* @param length*/public static void getWorkDays(String date,int length){Calendar calendar = Calendar.getInstance();try {Date beginDay = sdf.parse(date);calendar.setTime(beginDay);for(int i=0;i<length;i++){calendar.add(Calendar.DAY_OF_WEEK,1); // 每次累加一天int day = calendar.get(Calendar.DAY_OF_WEEK); // 獲取當天是周幾String tmp_day = sdf.format(calendar.getTime());//如果當天是1和7或者屬于自定義日期 則屬于休息日 剩余的則是工作日if((day!=1 && day!=7) && (!holidaySet.contains(tmp_day))){workdaySet.add(tmp_day);//將工作日添加到workdaySet}}} catch (ParseException e) {e.printStackTrace();}}public static ArrayList<String> getLines(String path) throws IOException {ArrayList<String> lines = new ArrayList<>();BufferedReader br = new BufferedReader(new FileReader(path));String str = "";while((str = br.readLine())!=null) {if(str.length()>2){lines.add("1."+str);}}return lines;}/**** @param writeBegin 開始寫記錄的初始位置* @param writeEnd 結束寫記錄的位置* @param worksNotes 工作記錄,可以以txt文件為載體,總是需要提前寫好每一條工作記錄【可以從日報或者周報獲取】* @param path 【年度工作總結】excel文件的本地地址* @param writePos01 需要插入的excel的列1* @param writePos02 需要插入的excel的列2* @throws IOException*/public void writeReports(int writeBegin,int writeEnd,ArrayList<String> worksNotes,String path,int writePos01,int writePos02) throws IOException {XSSFWorkbook workbook = new XSSFWorkbook(new FileInputStream(path));XSSFSheet sheet = workbook.getSheet("日工作量清單-數據平臺部");int recordNum = 0; // 日志記錄中對應的行數for(int i=writeBegin-1;i<=writeEnd-1;i++){XSSFRow row = sheet.getRow(i);//獲取該行日期String date = sdf.format(row.getCell(0).getDateCellValue());if(workdaySet.contains(date)){//創建填充shell位置,并且填充數據XSSFCell cell = row.createCell(writePos01);cell.setCellValue(worksNotes.get(recordNum)); //從日志記錄 第0行開始,遞增XSSFCell cell2 = row.createCell(writePos02);cell2.setCellValue(worksNotes.get(recordNum++)); //從日志記錄 第0行開始 遞增}else{continue;}}FileOutputStream fos = new FileOutputStream("/Users/keino/Desktop/workNote.xlsx");workbook.write(fos);workbook.close();fos.close();workbook.close();}public static void main(String[] args) throws IOException {getWorkDays("20210531", 360);OperaExcel excel = new OperaExcel();excel.writeReports(180,363,getLines("/Users/keino/Desktop/工作記錄.txt"),"/Users/keino/Desktop/年度工作量總結.xlsx",5,6);} }

總結

以上是生活随笔為你收集整理的使用java的姿势完善【年、月、周】个人工作量总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。