如何批处理将多个文件夹下的excel文件(xls,xlsx,csv等)合并成一个文件?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何批处理将多个文件夹下的excel文件(xls,xlsx,csv等)合并成一个文件?相关的知识,希望对你有一定的参考价值。
您好,我想把多个文件夹及子文件夹下的excel文件(xls,xlsx,csv等)全部合并成一个excel文件,用批处理没成功,不知您能否帮忙解答?
xls、xlsx不是单纯的文本。所以我的批处理能力无法直接合并。但xlsx格式的我倒是写过一个转换为csv的代码,那么变成csv格式后,就可以正常合并了。来自:求助得到的回答 参考技术A 可以把所有文件放一个文件夹里,再新建一个空白的Excel插入代码按运行就可以。代码你可以去网上复制过来
python中如何将csv文件转为xls文件
废话开端
要实现将csv文件转换为xls文件,就需要用到python中非常强大的第三方库---pandas。之前基本没用过pandas,对它可以说是一点都不了解,但是最近在工作中要经常处理各种Excel、csv文件,就不得不用到了,也还是处于学习阶段,一边学习,一边总结记录。那我们都知道pandas不仅可以操作Excel,csv,而且还可以处理json、pickle、html、table等等各种类型的数据。功能强大,非常实用,深受广大程序猿的喜爱,实属开发之必备良品啊!
代码实现
from io import StringIO import csv import pandas as pd c_path = r"C:\Users\Desktop\新建文本文档.csv" x_path = r"C:\Users\Desktop\新建文本文档.xls" def csv_to_xls(csv_path, xls_path): with open(csv_path, ‘r‘, encoding=‘gb18030‘, errors=‘ignore‘) as f: data = f.read() data_file = StringIO(data) csv_reader = csv.reader(data_file) list_csv = [] for row in csv_reader: list_csv.append(row) df_csv = pd.DataFrame(list_csv).applymap(str) ‘‘‘ 这部分是不将csv装换为xls,而是过滤后再写入csv文件 df_csv = df_csv[(df_csv[4] == ‘‘) | (df_csv[4] == ‘name‘)] # 过滤出第四列包含空值和name的数据 df_csv.to_csv(csv_path, index=0, header=0, encoding=‘gb18030‘) # 写入csv文件中 ‘‘‘ writer = pd.ExcelWriter(xls_path) df_csv.to_excel( excel_writer=writer, index=False, header=False ) writer.save() csv_to_xls(c_path, x_path)
以上是关于如何批处理将多个文件夹下的excel文件(xls,xlsx,csv等)合并成一个文件?的主要内容,如果未能解决你的问题,请参考以下文章
怎么在同一个文件夹下的多个EXCEL文件合并到一个EXCEL里?
如何从 Scala Spark 中的 Excel (xls,xlsx) 文件构造数据框?