python批量复制多个excel的某一列到一个excel
时间: 2023-07-07 15:06:08 浏览: 239
你可以使用Python的openpyxl库来实现批量复制多个Excel文件的某一列到一个Excel文件中。具体的步骤如下:
1. 安装openpyxl库
在命令行中输入以下命令可以安装openpyxl库:
```
pip install openpyxl
```
2. 导入openpyxl库
在Python脚本中导入openpyxl库:
```python
import openpyxl
```
3. 打开目标Excel文件
使用openpyxl库中的load_workbook()方法打开目标Excel文件:
```python
target_book = openpyxl.load_workbook('target.xlsx')
```
4. 获取目标Excel文件中的工作表
使用target_book对象的worksheets属性获取目标Excel文件中的工作表:
```python
target_sheet = target_book.worksheets[0]
```
这里假设目标Excel文件中只有一个工作表。
5. 循环遍历源Excel文件
使用Python的os库中的listdir()方法获取源Excel文件所在目录下的所有文件名,然后循环遍历每个文件:
```python
import os
source_dir = 'source_dir'
col_num = 1 # 需要复制的列号(从1开始)
for filename in os.listdir(source_dir):
source_book = openpyxl.load_workbook(os.path.join(source_dir, filename))
source_sheet = source_book.active
# 获取需要复制的列数据
col_data = [cell.value for cell in source_sheet.columns[col_num - 1]]
# 将数据复制到目标Excel文件中的对应列
for i, value in enumerate(col_data):
target_sheet.cell(row=i + 1, column=col_num).value = value
target_book.save('target.xlsx')
```
这里假设需要复制的列号为1(即第一列)。
6. 保存目标Excel文件
使用target_book对象的save()方法保存目标Excel文件:
```python
target_book.save('target.xlsx')
```
完整代码如下:
```python
import os
import openpyxl
source_dir = 'source_dir'
col_num = 1 # 需要复制的列号(从1开始)
# 打开目标Excel文件
target_book = openpyxl.load_workbook('target.xlsx')
target_sheet = target_book.worksheets[0]
# 循环遍历源Excel文件
for filename in os.listdir(source_dir):
source_book = openpyxl.load_workbook(os.path.join(source_dir, filename))
source_sheet = source_book.active
# 获取需要复制的列数据
col_data = [cell.value for cell in source_sheet.columns[col_num - 1]]
# 将数据复制到目标Excel文件中的对应列
for i, value in enumerate(col_data):
target_sheet.cell(row=i + 1, column=col_num).value = value
# 保存目标Excel文件
target_book.save('target.xlsx')
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)