
"""
CreateTime: 2019-12-6
UpdateTime: 2019-12-6
Info: 读取Excel文件,可以读取xls,也可以读xlsx
"""
import xlrd
import xlsxwriter
import xlwt
from dateutil import rrule
import datetime
def read_info_excel():
file_name = 'file/BringUp.xlsx'
workbook = xlrd.open_workbook(file_name)
sheet = workbook.sheet_by_index(0)
print(file_name, sheet.name, "人数:",sheet.nrows)
print("获取第1行内容:", sheet.row_values(0))
for rown in range(sheet.nrows):
array = {'工号': '', '姓名': '', '团队': '','数量': ''}
array['工号'] = sheet.cell_value(rown, 0)
array['姓名'] = sheet.cell_value(rown, 1)
array['团队'] = sheet.cell_value(rown, 2)
array['数量'] = 0
excel_tables.append(array)
for item in excel_tables:
print("工号:", item['工号'], "姓名:", item['姓名'],"团队:", item['团队'],"数量:", item['数量'])
return excel_tables
def read_table_excel():
file_name = 'file/Table.xlsx'
workbook = xlrd.open_workbook(file_name)
sheet = workbook.sheet_by_index(0)
print(file_name, sheet.name, "人数:",sheet.nrows)
for rown in range(sheet.nrows):
for item in excel_tables:
mem_name = item['姓名']
if (sheet.cell_value(rown, 1) == mem_name):
item['数量'] = item['数量']+1
return excel_tables
def write_table_excel():
workbook = xlsxwriter.Workbook('file/Excel_main.xlsx')
worksheet = workbook.add_worksheet()
worksheet.set_column('A:A', 20)
worksheet.set_column('D:D', 20)
worksheet.set_column('E:E', 20)
worksheet.set_column('F:F', 20)
worksheet.set_column('G:G', 20)
worksheet.set_column('H:H', 20)
worksheet.set_column('I:I', 20)
worksheet.write('A1', '工号')
worksheet.write('B1', '姓名')
worksheet.write('C1', '团队')
worksheet.write('D1', '改进建议应提交数量')
worksheet.write('E1', '改进建议已提交数量')
worksheet.write('F1', '当前日期')
worksheet.write('G1', '截止日期')
worksheet.write('H1', '截止日期前每月应提交')
untilYear = 2020
untilMonth = 12
untilDay = 31
firstDay = datetime.datetime(untilYear,6,7)
endDay = datetime.datetime(untilYear,untilMonth,untilDay)
days = rrule.rrule(freq = rrule.DAILY,dtstart=firstDay,until=endDay)
for item in excel_tables:
print("工号:", item['工号'], "姓名:", item['姓名'],"团队:", item['团队'],"数量:", item['数量'])
cowNum = 1
for item in excel_tables:
mem_name = item['姓名']
mem_id = item['工号']
mem_num = item['数量']
mem_team = item['团队']
worksheet.write(cowNum, 0, mem_id)
worksheet.write(cowNum, 1, mem_name)
worksheet.write(cowNum, 2, mem_team)
worksheet.write(cowNum, 3, 20-mem_num)
worksheet.write(cowNum, 4, mem_num)
worksheet.write(cowNum, 5, datetime.datetime.now().strftime('%Y-%m-%d'))
worksheet.write(cowNum, 6, "2020-12-31")
workfomat = workbook.add_format()
workfomat.set_num_format('0.0')
worksheet.write(cowNum, 7, (20-mem_num)/(int)(days.count()/30),workfomat)
cowNum = cowNum + 1
workbook.close()
if __name__ == '__main__':
excel_tables = []
read_info_excel()
read_table_excel()
write_table_excel()