使用pycharm 将多个excel放到一个excel的不同sheet里,并可以给每个sheet命名
时间: 2024-01-24 07:02:35 浏览: 105
Python保留格式复制多个excel工作表到汇总表并生成目录
1. 首先需要安装openpyxl库,可以在pycharm的Terminal中使用以下命令安装:
```
pip install openpyxl
```
2. 接下来,需要准备多个excel文件,假设这些文件都在同一文件夹下。
3. 在pycharm中创建一个新的python文件,输入以下代码:
```python
import os
from openpyxl import Workbook, load_workbook
# 设置工作目录
os.chdir(r'C:\path\to\folder')
# 新建一个工作簿
wb = Workbook()
# 遍历文件夹中的excel文件
for file in os.listdir():
if file.endswith('.xlsx'):
# 读取excel文件
wb1 = load_workbook(file)
# 获取第一个sheet的名称
sheet_name = wb1.sheetnames[0]
# 创建一个新的sheet,并将数据复制到新sheet中
ws = wb.create_sheet(sheet_name)
for row in wb1[sheet_name].rows:
ws.append([cell.value for cell in row])
# 关闭原始工作簿
wb1.close()
# 保存新的工作簿
wb.save('combined.xlsx')
```
在代码中,首先使用`os.chdir()`设置工作目录为excel文件所在的文件夹。然后新建一个`Workbook`对象,用于存储合并后的数据。接着使用`os.listdir()`遍历文件夹中的所有文件,筛选出后缀为`.xlsx`的excel文件。使用`load_workbook()`函数加载每个excel文件,然后获取第一个sheet的名称。接着创建一个新的sheet,并将原始excel文件中的数据复制到新sheet中。最后使用`Workbook`对象的`save()`方法保存新的excel文件,命名为`combined.xlsx`。
4. 在代码中可以自定义新sheet的名称,例如将原始excel文件的文件名作为新sheet的名称:
```python
# 获取原始excel文件的文件名,作为新sheet的名称
sheet_name = os.path.splitext(file)[0]
```
在这里使用了`os.path.splitext()`函数获取文件名和后缀名,然后使用`[0]`获取文件名部分作为新sheet的名称。
5. 运行代码,等待程序执行完毕,就可以在工作目录下找到新生成的`combined.xlsx`文件,其中包含了所有原始excel文件的数据,每个文件的数据都在一个独立的sheet中,并且可以自定义sheet的名称。
阅读全文