疫情期间在校需要时常测量体温,早晚各一次,并且要填入Excel表格中汇总,十分麻烦,所以写了一个Python程序生成随机数作为温度填入Excel中。
直接用代码之前要新建xsl文件,注意别新建成xslx了!
# coding=UTF-8
import random
import xlrd
import xlwt
from xlutils.copy import copy
# 前几列需要一些基本信息 用此函数生成
def create_value():
date=1 # 生成一天的数据
all_value=[]
first_row = ['学号','姓名']
second_row = ['','']
stu1=['xxxxxxxxxx','张三']
stu2=['xxxxxxxxxx','李四']
stu3=['xxxxxxxxxx','王五']
stu4=['xxxxxxxxxx','王六']
stu5=['xxxxxxxxxx','王七']
stu6=['xxxxxxxxxx','何八']
stu7=['xxxxxxxxxx','王二']
for i in range(date):
first_row.append('6月%d日'%(i+1))
first_row.append('')
second_row.append('上午温度')
second_row.append('下午温度')
for i in range(date*2):
stu1.append('36.%d' % random.randint(0, 9))
stu2.append('36.%d' % random.randint(0, 9))
stu3.append('36.%d' % random.randint(0, 9))
stu4.append('36.%d' % random.randint(0, 9))
stu5.append('36.%d' % random.randint(0, 9))
stu6.append('36.%d' % random.randint(0, 9))
stu7.append('36.%d' % random.randint(0, 9))
all_value.append(first_row )
all_value.append(second_row )
all_value.append(stu1)
all_value.append(stu2)
all_value.append(stu3)
all_value.append(stu4)
all_value.append(stu5)
all_value.append(stu6)
all_value.append(stu7)
return all_value
def write_excel_xls(path, sheet_name, value):
index = len(value) # 获取需要写入数据的行数
workbook = xlwt.Workbook() # 新建一个工作簿
sheet = workbook.add_sheet(sheet_name) # 在工作簿中新建一个表格
for i in range(0, index):
for j in range(0, len(value[i])):
sheet.write(i, j, value[i][j]) # 像表格中写入数据(对应的行和列)
workbook.save(path) # 保存工作簿
print("xls格式表格写入数据成功!")
# 列追加数据
def write_excel_xls_append(path, value):
index = len(value) # 获取需要写入数据的行数
workbook = xlrd.open_workbook(path) # 打开工作簿
sheets = workbook.sheet_names() # 获取工作簿中的所有表格
worksheet = workbook.sheet_by_name(sheets[0]) # 获取工作簿中所有表格中的的第一个表格
cols_old = worksheet.ncols # 获取表格中已存在的数据的列数
new_workbook = copy(workbook) # 将xlrd对象拷贝转化为xlwt对象
new_worksheet = new_workbook.get_sheet(0) # 获取转化后工作簿中的第一个表格
for i in range(0, index):
for j in range(0, len(value[i])):
new_worksheet.write(i, j+cols_old, value[i][j]) # 追加写入数据
new_workbook.save(path) # 保存工作簿
print("xls格式表格【追加】写入数据成功!")
# 此处是行追加数据#####
# def write_excel_xls_append(path, value):
# index = len(value[0]) # 获取需要写入数据的列数
# workbook = xlrd.open_workbook(path) # 打开工作簿
# sheets = workbook.sheet_names() # 获取工作簿中的所有表格
# worksheet = workbook.sheet_by_name(sheets[0]) # 获取工作簿中所有表格中的的第一个表格
# rows_old = worksheet.nrows # 获取表格中已存在的数据的行数
# new_workbook = copy(workbook) # 将xlrd对象拷贝转化为xlwt对象
# new_worksheet = new_workbook.get_sheet(0) # 获取转化后工作簿中的第一个表格
# for i in range(0, index):
# for j in range(0, len(value[i])):
# new_worksheet.write(i + rows_old, j, value[i][j]) # 追加写入数据,注意是从i+rows_old行开始写入
# new_workbook.save(path) # 保存工作簿
# print("xls格式表格【追加】写入数据成功!")
def read_excel_xls(path):
workbook = xlrd.open_workbook(path) # 打开工作簿
sheets = workbook.sheet_names() # 获取工作簿中的所有表格
worksheet = workbook.sheet_by_name(sheets[0]) # 获取工作簿中所有表格中的的第一个表格
for i in range(0, worksheet.nrows):
for j in range(0, worksheet.ncols):
print(worksheet.cell_value(i, j), "\t", end="") # 逐行逐列读取数据
print()
def create_add_value(path):
date=1
all_value=[]
first_row = []
second_row = []
stu1=[]
stu2=[]
stu3=[]
stu4=[]
stu5=[]
stu6=[]
stu7=[]
index = len(value) # 获取需要写入数据的行数
workbook = xlrd.open_workbook(path) # 打开工作簿
sheets = workbook.sheet_names() # 获取工作簿中的所有表格
worksheet = workbook.sheet_by_name(sheets[0]) # 获取工作簿中所有表格中的的第一个表格
cols_old = worksheet.ncols # 获取表格中已存在的数据的列数
first_row.append('6月%d日'%((cols_old-2)/2+1))
first_row.append('')
second_row.append('上午温度')
second_row.append('下午温度')
for i in range(date*2):
stu1.append('36.%d' % random.randint(0, 9))
stu2.append('36.%d' % random.randint(0, 9))
stu3.append('36.%d' % random.randint(0, 9))
stu4.append('36.%d' % random.randint(0, 9))
stu5.append('36.%d' % random.randint(0, 9))
stu6.append('36.%d' % random.randint(0, 9))
stu7.append('36.%d' % random.randint(0, 9))
all_value.append(first_row)
all_value.append(second_row)
all_value.append(stu1)
all_value.append(stu2)
all_value.append(stu3)
all_value.append(stu4)
all_value.append(stu5)
all_value.append(stu6)
all_value.append(stu7)
return all_value
book_name_xls = 'C:\\Users\\ADMIN\\Desktop\\温度\\温度记录表.xls'
sheet_name_xls = '6月温度'
value = create_value() # 第一天记录时需要写入基本信息,用此数据写入
add_value=create_add_value(book_name_xls)# 之后每天写入数据时,用此数据
write_excel_xls_append(book_name_xls, add_value) #追加每天数据
read_excel_xls(book_name_xls)