简单操作excel表格

帮导师写的第一个python小代码,首先对文件夹下的所有excel表格按照修改日期进行排序,然后新数据(即列)覆盖旧数据。

# 正式代码
import xlrd as xr
import xlsxwriter
import os

#获取文件夹下所有excel文件的路径,放入列表
def getUrls(urls):
    rootdir = "C:\\Users\\SDQ\\Desktop\\2019非正式成绩"
    list = os.listdir(rootdir)  # 列出文件夹下所有的目录与文件
    dir_list = sorted(list, key=lambda x: os.path.getmtime(os.path.join(rootdir, x)))
    for i in range(0, len(dir_list)):
        # print(dir_list[i])
        urls.append(rootdir+"\\"+dir_list[i])


#把每行Excel数据放入list,重复则对比,设置最大小时数,不重复则插入列表
def insert(data,datas):
    flag = True

    for d in datas:
        if(data[0]=="班次编号"):
            flag = False  # 第二个标题不插入
            break
        if(data[2]==d[2]):   #对比学号(学号在第3列)
            flag = False     # 如果重复则判断是否要修改小时数
            if(data[len(data)-1]==""):
                continue
            d[len(d) - 1] = data[len(data) - 1]
    if(flag): # 不重复则插入列表
        datas.append(data)

url_xls = []    #路径集合
total_data = [] #数据集合

#设置要导入的文件的路径集合
getUrls(url_xls)

#读取Excel,把每一行存入all_data列表中
for i in range(0,len(url_xls)):
    #print(url_xls[i])
    x_y_data = xr.open_workbook(url_xls[i])
    all_data = x_y_data.sheets()[0]
    list = all_data._cell_values
    for data in list:
        insert(data,total_data)
    #print("list size is " + str(len(list)))

# 创建一个工作簿并添加一个工作表
workbook = xlsxwriter.Workbook("C:\\Users\\SDQ\\Desktop\\5649(3).xls")
worksheet = workbook.add_worksheet()

font = workbook.add_format({"font_size":14})  #设置字体

for row in range(0,len(total_data)):
    for col in range(0,len(total_data[row])):
        worksheet.write(row, col, total_data[row][col], font)

# 关闭文件流
workbook.close()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值