Python随机生成体温并写入Excel

疫情期间在校需要时常测量体温,早晚各一次,并且要填入Excel表格中汇总,十分麻烦,所以写了一个Python程序生成随机数作为温度填入Excel中。

直接用代码之前要新建xls文件,注意别新建成xlsx了!

# 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)