python批量读取同一文件夹下所有excel文件并且合并

需求: python批量读取同一文件夹下所有excel文件并且合并

**适用场景:**所有表的表头信息相同,(不相同的会另起一列,不会匹配错误)


#合并脚本
import os,time
import pandas as pd
start_time=time.time()
dir = "输入目录"

all_date = []

for root, dirs, files in os.walk(dir):  
    for file in files:
        file_path=os.path.join(root,file)
        df = pd.read_excel(file_path,header = 1)  #数据行是从0开始数的
        all_date.append(df)
        
alldata = pd.concat(all_date) 
alldata.to_excel("输入保存地址、文件名称",index = False,encoding="gbk")

参考:python批量读取同一文件夹下所有excel文件并且合并

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 实现批量读取同一文件夹下所有excel指定单元格内容并写入新单元格的方法如下: 1. 导入必要的库: ``` python import os import openpyxl ``` 2. 定义一个函数,用于读取指定单元格内容并将其写入新单元格: ``` python def read_write_cell(file_path, sheet_name, source_cell, target_cell): # 打开excel文件 wb = openpyxl.load_workbook(file_path) # 选择指定的sheet sheet = wb[sheet_name] # 读取指定单元格的内容 source_value = sheet[source_cell].value # 写入新单元格 sheet[target_cell] = source_value # 保存文件 wb.save(file_path) # 关闭文件 wb.close() ``` 3. 获指定文件夹下所有excel文件的路径,并调用read_write_cell函数进行读写操作: ``` python # 指定文件夹路径 folder_path = '文件夹路径' # 遍历文件夹中所有文件 for filename in os.listdir(folder_path): if filename.endswith('.xlsx') or filename.endswith('.xls'): # 构建完整的文件路径 file_path = os.path.join(folder_path, filename) # 执行读写操作,例如将A1单元格的内容写入B1单元格 read_write_cell(file_path, 'Sheet1', 'A1', 'B1') ``` 以上代码会遍历指定文件夹下的所有excel文件,然后读取指定单元格的内容,并将其写入新的单元格中。你可以根据自己的需求,修改read_write_cell函数中的参数来选择读取和写入的单元格位置。 ### 回答2: 批量读取同一文件夹下所有Excel文件的指定单元格内容,并将其写入新的单元格,可以使用Python中的pandas和openpyxl库来实现。 首先,需要安装pandas和openpyxl库。在命令行中使用以下命令安装: ```python pip install pandas openpyxl ``` 然后,使用以下代码来实现批量读取和写入操作: ```python import pandas as pd import os # 指定文件夹路径 folder_path = '指定文件夹路径' # 获文件夹中所有的Excel文件 files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx') or f.endswith('.xls')] # 遍历每个Excel文件 for file in files: # 构造文件路径 file_path = os.path.join(folder_path, file) # 读取Excel文件 df = pd.read_excel(file_path, sheet_name='Sheet1') # 假设需要获的单元格在Sheet1中 # 获指定单元格内容 cell_value = df.at[1, 'A'] # 假设需要获的单元格是A2 # 将内容写入新单元格(假设需要写入的单元格是B2) df.at[1, 'B'] = cell_value # 保存修改后的Excel文件 df.to_excel(file_path, index=False) ``` 这段代码会遍历指定文件夹下的每一个Excel文件读取每个文件的指定单元格内容,将其写入新的单元格,并保存修改后的Excel文件。 需要注意的是,代码中的`sheet_name`参数需要指定要读取的工作表名称,`at`方法中的行和列需要根据实际需求进行调整。 另外,在使用这段代码之前,请确保文件夹路径中只包含需要处理的Excel文件,否则可能会导致错误。 ### 回答3: 要批量读取同一文件夹下的所有Excel文件的指定单元格内容,并将其写入新的单元格,可以使用Python编程语言和pandas库来实现。 首先,我们需要导入所需的库: ```python import os import pandas as pd ``` 然后,我们可以定义一个函数来实现读取和写入的操作: ```python def read_and_write_excel(file_path, sheet_name, read_cell, write_cell): df = pd.read_excel(file_path, sheet_name=sheet_name) content = df.loc[0, read_cell] df.loc[0, write_cell] = content df.to_excel(file_path, index=False) ``` 在这个函数中,我们首先使用`pd.read_excel()`方法读取Excel文件的指定工作表。然后,我们使用`df.loc[]`方法来获指定单元格的内容。将获到的内容写入到新单元格中,再使用`df.to_excel()`方法将修改后的数据保存回Excel文件中。 接下来,我们可以编写一个遍历文件夹中所有Excel文件的函数,并调用之前定义的函数批量处理: ```python def batch_process_folder(folder_path, sheet_name, read_cell, write_cell): files = os.listdir(folder_path) for file in files: if file.endswith(".xlsx") or file.endswith(".xls"): file_path = os.path.join(folder_path, file) read_and_write_excel(file_path, sheet_name, read_cell, write_cell) ``` 在这个函数中,我们使用`os.listdir()`方法获文件夹中的所有文件,并使用`os.path.join()`方法构建每个Excel文件的完整路径。然后,根据文件的扩展名来判断是否为Excel文件,如果是的话则调用之前定义的`read_and_write_excel()`函数进行处理。 最后,我们只需要提供文件夹路径、工作表名、读取单元格地址和写入单元格地址作为参数调用`batch_process_folder()`函数即可实现批量读取并写入Excel文件中指定单元格的内容。 以下是一个具体的示例: ```python folder_path = "文件夹路径" sheet_name = "工作表名" read_cell = "读取单元格地址" write_cell = "写入单元格地址" batch_process_folder(folder_path, sheet_name, read_cell, write_cell) ``` 请注意,上述示例中的读取单元格地址和写入单元格地址应按照Excel的命名约定进行书写,例如:"A1"表示第1行第1列的单元格。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值