基于table方法实现
This commit is contained in:
parent
a6cae7d8f8
commit
57b47241fc
@ -1,4 +1,4 @@
|
|||||||
@REM @echo off
|
@REM @echo off
|
||||||
call conda activate fbh_base
|
call .\week_report\Scripts\activate
|
||||||
python gen_word.py
|
python gen_word.py
|
||||||
pause
|
pause
|
||||||
|
@ -1 +1,3 @@
|
|||||||
user_name: 冯博涵
|
user_name: 冯博涵
|
||||||
|
project_name: nb2337
|
||||||
|
project_leader: 罗伟
|
||||||
|
54
gen_word.py
54
gen_word.py
@ -8,30 +8,42 @@ import win32com
|
|||||||
from win32com.client import Dispatch, constants
|
from win32com.client import Dispatch, constants
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import ruamel.yaml as yaml
|
import ruamel.yaml as Yaml
|
||||||
import logging.config
|
import logging.config
|
||||||
|
|
||||||
|
|
||||||
class WEEK_REPORT:
|
class WEEK_REPORT:
|
||||||
file_name = ""
|
file_name = ""
|
||||||
pre_file_name = ""
|
pre_file_name = ""
|
||||||
pre_str = ""
|
pre_str = ""
|
||||||
str = ""
|
str = ""
|
||||||
user_name = ""
|
user_name = ""
|
||||||
|
project_name = ""
|
||||||
|
project_leader = ""
|
||||||
__word = ""
|
__word = ""
|
||||||
__doc = ""
|
__doc = ""
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
with open("config.yaml", "r", encoding="UTF-8") as f1:
|
with open("config.yaml", "r", encoding="UTF-8") as f1:
|
||||||
data = yaml.safe_load(f1)
|
yaml = Yaml.YAML(typ='safe', pure=True)
|
||||||
|
data = yaml.load(f1)
|
||||||
logger.debug("config.yaml: {}".format(data))
|
logger.debug("config.yaml: {}".format(data))
|
||||||
self.user_name = data["user_name"]
|
self.user_name = data["user_name"]
|
||||||
|
self.project_name = data["project_name"]
|
||||||
|
self.project_leader = data["project_leader"]
|
||||||
self.get_name()
|
self.get_name()
|
||||||
|
|
||||||
def get_name(self):
|
def get_name(self):
|
||||||
self.file_name = "{}WW{}周工作报告_{}.doc".format(time.strftime('%Y'), time.strftime('%W'), self.user_name)
|
self.file_name = "{}WW{}周工作报告_{}.doc".format(time.strftime('%Y'), time.strftime('%W'), self.user_name)
|
||||||
self.pre_file_name = "{}WW{}周工作报告_{}.doc".format(time.strftime('%Y'), str(int(time.strftime('%W'))-1), self.user_name)
|
if time.strftime('%W') == "01":
|
||||||
|
self.pre_file_name = "{}WW{}周工作报告_{}.doc".format(str(int(time.strftime('%Y')) - 1), str(52),
|
||||||
|
self.user_name)
|
||||||
|
else:
|
||||||
|
self.pre_file_name = "{}WW{}周工作报告_{}.doc".format(time.strftime('%Y'),
|
||||||
|
str(int(time.strftime('%W')) - 1), self.user_name)
|
||||||
logger.info("pre file name: {}".format(self.pre_file_name))
|
logger.info("pre file name: {}".format(self.pre_file_name))
|
||||||
logger.info("new file name: {};".format(self.file_name))
|
logger.info("new file name: {};".format(self.file_name))
|
||||||
if(os.path.isfile(self.file_name)==True):
|
if os.path.isfile(self.file_name):
|
||||||
logger.info("{} is already exist.".format(self.file_name))
|
logger.info("{} is already exist.".format(self.file_name))
|
||||||
self.open_file()
|
self.open_file()
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
@ -48,17 +60,29 @@ class WEEK_REPORT:
|
|||||||
self.doc = self.word.Documents.Open(os.getcwd() + "\\{}".format(self.file_name))
|
self.doc = self.word.Documents.Open(os.getcwd() + "\\{}".format(self.file_name))
|
||||||
|
|
||||||
def edit_file(self):
|
def edit_file(self):
|
||||||
s = self.word.Selection
|
table = self.doc.Tables(1)
|
||||||
s.Find.Execute("{}WW{}".format(time.strftime('%Y'), str(int(time.strftime('%W'))-1)),
|
|
||||||
False, False, False, False, False, True, 1, False,
|
# 工作周
|
||||||
"{}WW{}".format(time.strftime('%Y'), time.strftime('%W')), 1)
|
table.Cell(Row=1, Column=2).Range.Text = "{}WW{}".format(time.strftime('%Y'), time.strftime('%W'))
|
||||||
|
|
||||||
|
# 日期
|
||||||
self.get_last_week()
|
self.get_last_week()
|
||||||
self.get_current_week()
|
self.get_current_week()
|
||||||
s.Find.Execute(self.pre_str,
|
table.Cell(Row=1, Column=4).Range.Text = self.str
|
||||||
False, False, False, False, False, True, 1, False,
|
|
||||||
self.str, 1)
|
# 所在项目
|
||||||
# run 宏
|
table.Cell(Row=2, Column=2).Range.Text = self.project_name
|
||||||
# self.doc.run("update")
|
|
||||||
|
# 项目负责人
|
||||||
|
table.Cell(Row=2, Column=4).Range.Text = self.project_leader
|
||||||
|
|
||||||
|
# 删除上周工作内容
|
||||||
|
for i in range(7,12):
|
||||||
|
logger.info("process {} row ...".format(i))
|
||||||
|
table.Cell(Row=i, Column=2).Range.Text = ''
|
||||||
|
table.Cell(Row=i, Column=3).Range.Text = ''
|
||||||
|
table.Cell(Row=13, Column=1).Range.Text = ''
|
||||||
|
table.Cell(Row=15, Column=1).Range.Text = '项目工作:\n'
|
||||||
|
|
||||||
def update_file(self):
|
def update_file(self):
|
||||||
self.open_file()
|
self.open_file()
|
||||||
@ -96,9 +120,11 @@ class WEEK_REPORT:
|
|||||||
self.str = datetime.datetime.strftime(monday, "%#m.%#d") + "~" + datetime.datetime.strftime(friday, "%#m.%#d")
|
self.str = datetime.datetime.strftime(monday, "%#m.%#d") + "~" + datetime.datetime.strftime(friday, "%#m.%#d")
|
||||||
logger.debug("str: {}".format(self.str))
|
logger.debug("str: {}".format(self.str))
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
with open("log_config.yaml", 'r') as f:
|
with open("log_config.yaml", 'r') as f:
|
||||||
config = yaml.safe_load(f.read())
|
yaml = Yaml.YAML(typ='safe', pure=True)
|
||||||
|
config = yaml.load(f.read())
|
||||||
logging.config.dictConfig(config)
|
logging.config.dictConfig(config)
|
||||||
logger = logging.getLogger("file_logger")
|
logger = logging.getLogger("file_logger")
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user