复制xls文件保留格式到另一个文件夹

本人是个实习生,我在一所大学里面帮一个领导整理课程表。

他那边有一个教室为单位的表格内容。

所以我是负责复制黏贴到一个大表格上面。但是表格很多我又比较懒所以我造了一个合成文件的py。

import pandas as pd
import os
dfs=[]
for file in os.listdir('./'):
    if file.endswith('.xls'):

        df=pd.read_excel(file,skiprows=[0,13],usecols=[2, 3, 4, 5, 6, 7,8])
        print(df.values)
        dfs.extend(df.values.tolist())
dfs=pd.DataFrame(dfs)
file_name='./合并文件.xlsx'
dfs.to_excel(file_name,index=False,header=False)

内容也是网站上找的然后修修改改就成功了。

但是后续领导他又要重做一份更加全面的并且中间有些表格。

因为是全空就压根没有表格再加上左侧是一个表对照一个表的所以得先把没有的表格创建。

但是有好几周所以我从网上找了代码在网上再加上修修改改可以大致做到复制但是有许多地方可能有问题。

代码如下

import os
import xlrd
from xlutils.filter import process, XLRDReader, XLWTWriter

dic=[]
path1 = r'G:\材料\三教\新建文件夹'       #对比文件(全部文件确定已经在的)
path2 = r'G:\材料\三教\新建文件夹 - 副本 (3)'  #对比文件(文件缺失的)
copy_path=r"G:\材料\三教\新建文件夹\奉语12.xls"  #复制文件 (内容格式正确)(如果不是一个文件就进行相对路径跟new_path一样)
new_path=r"G:\材料\三教\新建文件夹 - 副本 (3)"     #复制文件 (复制位置)
def file_name(image_dir,xml_dir):
    correct_list = []
    test_list = []
    for root, dirs, files in os.walk(image_dir):
        for file in files:
            correct_list.append(os.path.splitext(file)[0])
    for root, dirs, files in os.walk(xml_dir):
        for file in files:
            test_list.append(os.path.splitext(file)[0])
    print(len(correct_list))
    
    diff2 = set(correct_list).difference(set(test_list))  # 差集,在b中但不在a中的元素
    print(len(diff2))
    for name in diff2:
            global dic
            # print("no xml", name + ".xls")
            names = name + ".xls"
            dic.append(names)
            dic = [item for item in dic if "万晓卿" not in item]
if __name__ == '__main__':
    file_name(path1,path2)
    print(dic)
    for name in dic:
        newpath=new_path + f'\{name}'
        rb = xlrd.open_workbook("奉语12.xls", formatting_info=True)

        # 参考xlutils.copy库内的用法 参考xlutils.filter内的参数定义style_list
        w = XLWTWriter()
        process(XLRDReader(rb, 'unknown.xls'), w)
        wb = w.output[0][1]
        style_list = w.style_list
        for n, sheet in enumerate(rb.sheets()):
            sheet2 = wb.get_sheet(n)
            for r in range(sheet.nrows):
                for c, cell in enumerate(sheet.row_values(r)):
                    style = style_list[sheet.cell_xf_index(r, c)]
                    # sheet2.write(r, c, sheet.cell_xf_index(r, c), style)
                    sheet2.write(r, c, sheet.cell_xf_index(r, c), style)  

        wb.save(newpath)
        

 写这篇文章是为了自己,因为我可能要重装电脑而这又算是我第一次自己写一些方便的东西,代码量很少。也记录一下即将成为牛马现在的心态。

同时如果有人需要大可以拿去 在我那个复制表格有问题的地方进行修改完善。

之后我看的两篇文章放下面去了 我也就是复制黏贴的搬运工。

文章内中间有一个列表去除名字,是因为我如果不去出那就会有一个压缩包所以要用的话记得删除。(问我为什么宁可打字也不删掉代码)(因为我看你有没有好好看我的废话文章,嘻嘻)

用xlwt和xlrd在不修改Excel单元格格式的情况下修改单元格内容_xlwt修改xls文件保留格式-CSDN博客Python: 合并多个文件内容到一个文件中_python 用window命令 合并 listfiles.txt 文本中视频,输出一个文件 路径-CSDN博客
  • 18
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值