用python合成excel表格
时间: 2023-11-19 19:44:06 浏览: 99
要使用Python合成Excel表格,可以使用第三方库openpyxl。以下是一个简单的示例代码,用于创建一个新的工作簿,添加一些数据并保存为Excel文件:
```python
# 导入openpyxl库
import openpyxl
# 创建一个新的工作簿
wb = openpyxl.Workbook()
# 选择第一个工作表
ws = wb.active
# 添加数据
ws['A1'] = '姓名'
ws['B1'] = '年龄'
ws['C1'] = '性别'
ws['A2'] = '小明'
ws['B2'] = 18
ws['C2'] = '男'
ws['A3'] = '小红'
ws['B3'] = 20
ws['C3'] = '女'
# 保存工作簿
wb.save('example.xlsx')
```
在上面的示例中,我们创建了一个新的工作簿,选择了第一个工作表,并添加了一些数据。最后,我们使用`wb.save()`方法将工作簿保存为Excel文件。使用openpyxl库还可以进行更高级的Excel操作,例如读取和修改现有的工作簿,合并单元格,设置单元格格式等。
相关问题
写一个python脚本,将含有单元格填充颜色等格式的excel表格,合成一个表
好的,以下是一个Python脚本示例,可以将多个Excel表格合并为一个表格,并保留单元格填充颜色等格式:
```python
import openpyxl
from openpyxl.utils import get_column_letter
# 读取所有要合并的表格,将它们存储在一个列表中
workbooks = ['workbook1.xlsx', 'workbook2.xlsx', 'workbook3.xlsx']
sheets = []
for workbook in workbooks:
wb = openpyxl.load_workbook(workbook)
for sheet_name in wb.sheetnames:
sheet = wb[sheet_name]
sheets.append(sheet)
# 创建一个新的工作簿,并复制第一个表格到其中
merged_workbook = openpyxl.Workbook()
merged_sheet = merged_workbook.active
merged_sheet.title = sheets[0].title
for row in sheets[0].rows:
for cell in row:
merged_sheet[cell.coordinate].value = cell.value
merged_sheet[cell.coordinate].fill = cell.fill
merged_sheet[cell.coordinate].font = cell.font
# 将其他表格的内容复制到新工作簿中
for sheet in sheets[1:]:
new_sheet = merged_workbook.create_sheet(title=sheet.title)
for row in sheet.rows:
for cell in row:
new_sheet[cell.coordinate].value = cell.value
new_sheet[cell.coordinate].fill = cell.fill
new_sheet[cell.coordinate].font = cell.font
# 保存新工作簿
merged_workbook.save('merged_workbook.xlsx')
```
这个脚本做的事情是:
1. 读取所有要合并的Excel表格,并将它们存储在一个列表中。
2. 创建一个新的工作簿,并将第一个表格复制到其中。
3. 遍历其他表格的每个单元格,并将它们复制到新工作簿中。
4. 保存新工作簿。
在复制单元格时,我们还使用了 `cell.fill` 和 `cell.font` 属性来保留单元格填充颜色和字体等格式。
python把多个excel合成1个excel
### 使用 Pandas 和 Openpyxl 将多个 Excel 文件合并为一个
为了实现这一目标,可以采用 Python 的 `pandas` 库来处理数据帧(DataFrame),并通过 `openpyxl` 来操作 Excel 文件。以下是具体方法:
#### 方法概述
通过遍历指定目录下的所有 Excel 文件,逐个加载至 DataFrame 中,并最终将这些 DataFrame 追加到一个新的工作表内。
#### 实现代码如下:
```python
import os
import pandas as pd
from openpyxl import Workbook
def merge_excel_files(directory, output_file):
all_data = []
# 遍历给定路径下所有的 .xlsx 文件
for filename in os.listdir(directory):
if not filename.endswith('.xlsx'):
continue
file_path = os.path.join(directory, filename)
# 加载单个工作簿中的第一个 sheet 至 DataFrame
df = pd.read_excel(file_path, engine='openpyxl')
all_data.append(df)
# 创建新的工作簿对象
wb = Workbook()
ws = wb.active
# 如果有数据,则将其写入新创建的工作表中
if all_data:
combined_df = pd.concat(all_data, ignore_index=True)
combined_df.to_excel(wb, index=False, header=True)
# 保存结果文件
wb.save(output_file)
merge_excel_files('path/to/excels', 'merged_output.xlsx') # 替换实际路径名
```
此段脚本会读取位于特定文件夹内的所有 `.xlsx` 类型文档并将它们的内容追加在一起形成单一表格[^1]。
阅读全文