最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python還能這么玩之只用30行代碼從excel提取個人值班表

 更新時間:2021年06月04日 10:59:10   作者:Rattenking  
公司實行項目值班制度,拿到值班表,看到全部的值班信息,要去查找自己的值班信息,是一件頭痛的事情.作為程序員,當(dāng)然要簡化,將自己的信息提煉出來,需要的朋友可以參考下

一、查找操作

1.Excel 模塊 xlrd,xlwt,xlutils 分別負責(zé) Excel 文件的讀、寫、讀寫轉(zhuǎn)換工作!

2.openpyxl 直接可以對 Excel 文件讀寫!

3.pandas 直接可以對 Excel 文件讀寫!

二、安裝 openpyxl 模塊

pip install openpyxl

三、讀取并篩選值班表中自己的信息

1.讀取所有的值班信息;

2.由于一般情況 excel 都會有部分表格為空,保存全部 None 的 excel 行字符串?dāng)?shù)據(jù);

3.循環(huán)全部的值班數(shù)據(jù),將當(dāng)前行數(shù)據(jù)形成一個數(shù)據(jù)字符串;

4.判斷當(dāng)前值班信息字符串是否含有自己的姓名;

5.對含有自己信息的數(shù)據(jù)中關(guān)鍵信息(值班時間,姓名)進行存儲;

6.然后判斷當(dāng)前字符串是否含有全部 None 的數(shù)據(jù);

7.由于值班表沒有空出的行,所以查到 None,直接跳出循環(huán)。

dutys = []
  book = openpyxl.load_workbook('duty.xlsx',data_only=True)
  sheet = book.active
  all_data = book.get_sheet_by_name("日常加班")
  none_str = ''.join([str(None).ljust(20) for c in range(1,all_data.max_column+1)])
  for r in range(1,all_data.max_row + 1):
    cur_str = ''.join([str(all_data.cell(row=r,column=c).value).ljust(20) for c in range(1,all_data.max_column+1)])
    if cur_str.find("***") >= 0:
      dutys.append({
        "date": all_data.cell(row=r,column=2).value,
        "name": all_data.cell(row=r,column=3).value
      })
    elif cur_str.find(none_str) >= 0:
      break
  return dutys

四、創(chuàng)建自己的值班信息表

1.創(chuàng)建一個值班信息表的 excel;

2.將自己的值班信息循環(huán);

3.將信息填入創(chuàng)建的表格。

 book = openpyxl.Workbook()
  sheet = book.active
  for i in range(len(dutys)):
    sheet.cell(row=1 + i, column=1).value = dutys[i].get("name")
    sheet.cell(row=1 + i, column=2).value = f'{dutys[i].get("date")}'
  book.save('my_duty.xlsx')

五、全部代碼

#!/usr/bin/env python
"""
@Author  :Rattenking
@Date    :2021/06/02 10:19
@CSDN	 :https://blog.csdn.net/m0_38082783
"""

import openpyxl
import time

def get_my_duty_date():
  dutys = []
  book = openpyxl.load_workbook('duty.xlsx',data_only=True)
  sheet = book.active
  all_data = book.get_sheet_by_name("日常加班")
  none_str = ''.join([str(None).ljust(20) for c in range(1,all_data.max_column+1)])
  for r in range(1,all_data.max_row + 1):
    cur_str = ''.join([str(all_data.cell(row=r,column=c).value).ljust(20) for c in range(1,all_data.max_column+1)])
    if cur_str.find("***") >= 0:
      dutys.append({
        "date": all_data.cell(row=r,column=2).value,
        "name": all_data.cell(row=r,column=3).value
      })
    elif cur_str.find(none_str) >= 0:
      break
  return dutys

def create_my_duty_list(dutys):
  book = openpyxl.Workbook()
  sheet = book.active
  for i in range(len(dutys)):
    sheet.cell(row=1 + i, column=1).value = dutys[i].get("name")
    sheet.cell(row=1 + i, column=2).value = f'{dutys[i].get("date")}'
  book.save('my_duty.xlsx')

if __name__ == "__main__":
  start_time = int(round(time.time() * 1000))
  dutys = get_my_duty_date()
  create_my_duty_list(dutys)
  end_time = int(round(time.time() * 1000))
  print(f'本次提取值班表時間:{end_time - start_time}ms')

六、執(zhí)行結(jié)果

在這里插入圖片描述

七、總結(jié)

熟悉 openpyxl 模塊的各個功能,方便對 excel 的操作;篩選提取自己關(guān)注的關(guān)鍵信息,重新建表;下一篇根據(jù)值班時間,用 python 自動給自己的微信發(fā)送信息,進行提示!

到此這篇關(guān)于Python還能這么玩之只用30行代碼從excel提取個人值班表的文章就介紹到這了,更多相關(guān)Python從excel提取個人值班表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python中字典dict排序sorted的實現(xiàn)

    python中字典dict排序sorted的實現(xiàn)

    本文主要介紹了python中字典dict排序sorted的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • python遍歷文件夾找出文件夾后綴為py的文件方法

    python遍歷文件夾找出文件夾后綴為py的文件方法

    今天小編就為大家分享一篇python遍歷文件夾找出文件夾后綴為py的文件方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python的3種運行方式:命令行窗口、Python解釋器、IDLE的實現(xiàn)

    Python的3種運行方式:命令行窗口、Python解釋器、IDLE的實現(xiàn)

    這篇文章主要介紹了Python的3種運行方式:命令行窗口、Python解釋器、IDLE的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Python的shutil模塊中文件的復(fù)制操作函數(shù)詳解

    Python的shutil模塊中文件的復(fù)制操作函數(shù)詳解

    shutil被定義為Python中的一個高級的文件操作模塊,擁有比os模塊中更強大的函數(shù),這里我們就來看一下Python的shutil模塊中文件的復(fù)制操作函數(shù)詳解
    2016-07-07
  • Numpy array數(shù)據(jù)的增、刪、改、查實例

    Numpy array數(shù)據(jù)的增、刪、改、查實例

    今天小編就為大家分享一篇Numpy array數(shù)據(jù)的增、刪、改、查實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • 利用Python自動監(jiān)控網(wǎng)站并發(fā)送郵件告警的方法

    利用Python自動監(jiān)控網(wǎng)站并發(fā)送郵件告警的方法

    這篇文章介紹的是通過定時執(zhí)行python腳本,可以實現(xiàn)定期批量訪問網(wǎng)站,如果發(fā)現(xiàn)網(wǎng)站打不開,第一時間發(fā)郵件到管理員郵箱進行預(yù)警。有需要的可以參考借鑒。
    2016-08-08
  • Python 并行化執(zhí)行詳細解析

    Python 并行化執(zhí)行詳細解析

    這篇文章主要介紹了Python 并行化執(zhí)行詳細解析,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下,希望對你的學(xué)習(xí)有所幫助
    2022-07-07
  • python deque模塊簡單使用代碼實例

    python deque模塊簡單使用代碼實例

    這篇文章主要介紹了python deque模塊簡單使用代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • 解決TensorFlow訓(xùn)練模型及保存數(shù)量限制的問題

    解決TensorFlow訓(xùn)練模型及保存數(shù)量限制的問題

    這篇文章主要介紹了解決TensorFlow訓(xùn)練模型及保存數(shù)量限制的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python修改列表元素有哪些方法總結(jié)

    Python修改列表元素有哪些方法總結(jié)

    在Python中列表是一種可變序列,可以存儲任意類型的元素,而元組是一種不可變序列,也可以存儲各種類型的元素,下面這篇文章主要給大家介紹了關(guān)于Python修改列表元素有哪些方法的相關(guān)資料,需要的朋友可以參考下
    2023-05-05

最新評論

阿图什市| 策勒县| 中卫市| 庄河市| 淳化县| 铜梁县| 郓城县| 瑞安市| 鹿邑县| 科尔| 敖汉旗| 屏南县| 广昌县| 中牟县| 丽水市| 理塘县| 金塔县| 高阳县| 邯郸县| 英超| 墨玉县| 县级市| 喀什市| 衡东县| 天水市| 泽库县| 开封县| 都兰县| 克山县| 含山县| 龙海市| 临江市| 余姚市| 祁门县| 恭城| 天峨县| 含山县| 广元市| 黑龙江省| 离岛区| 瑞金市|