openpyxl读取excel指定列数据并生成新的excel
时间: 2024-01-24 08:02:42 浏览: 95
可以使用openpyxl库来读取Excel文件中的数据并生成新的Excel文件。以下是一个示例代码,可以读取原始Excel文件中的指定列数据并将其写入一个新的Excel文件中:
```python
import openpyxl
# 打开原始Excel文件
wb = openpyxl.load_workbook('example.xlsx')
sheet = wb.active
# 选择需要读取的列(这里选择第2列)
col = sheet['B']
# 创建新的Excel文件
new_wb = openpyxl.Workbook()
new_sheet = new_wb.active
# 将读取到的数据写入新的Excel文件
for cell in col:
new_sheet.append([cell.value])
# 保存新的Excel文件
new_wb.save('new_example.xlsx')
```
在这个例子中,我们首先使用openpyxl库打开原始Excel文件并选择需要读取的列(这里选择第2列)。然后,我们创建一个新的Excel文件并将读取到的数据写入新的Excel文件中。最后,我们保存新的Excel文件。
请注意,这个例子假设原始Excel文件只有一个工作表,并且需要读取的列数据没有标题行。如果需要读取多个工作表或者有标题行,请根据实际情况修改代码。
相关问题
openpyxl读取excel指定多列数据并生成新的excel
可以使用openpyxl库来读取Excel文件并生成新的Excel文件。
下面是一个示例代码,可以读取指定的多列数据,并将其写入新的Excel文件中:
```
import openpyxl
# 打开原始Excel文件
workbook = openpyxl.load_workbook('input.xlsx')
# 选择工作表
worksheet = workbook['Sheet1']
# 选择要读取的列
columns = ['A', 'C', 'D']
# 创建新的Excel文件
new_workbook = openpyxl.Workbook()
# 选择要写入的工作表
new_worksheet = new_workbook.active
# 写入表头
header = ['Column A', 'Column C', 'Column D']
new_worksheet.append(header)
# 读取数据并写入新文件中
for row in worksheet.iter_rows(min_row=2, values_only=True):
data = [row[worksheet.column_dimensions[column].index] for column in columns]
new_worksheet.append(data)
# 保存新文件
new_workbook.save('output.xlsx')
```
在这个示例中,首先打开原始Excel文件。然后选择要读取的工作表和列。接下来,创建一个新的Excel文件并选择要写入的工作表。然后写入表头,并使用`iter_rows`方法读取每一行数据,并将指定的列写入新文件中。最后,保存新文件。
openpyxl读取excel后,更改列的keys
在 openpyxl 中,通过访问单元格的行和列索引来读取和写入单元格数据。要更改列的键,您可以使用以下步骤:
1. 读取 Excel 文件并打开要编辑的工作表。
```
from openpyxl import load_workbook
# 打开 Excel 文件
workbook = load_workbook(filename='example.xlsx')
# 获取要编辑的工作表
worksheet = workbook['Sheet1']
```
2. 读取列数据并将其存储在一个字典中,其中键是原始键,值是列数据。
```
data = {}
# 读取列数据
for row in worksheet.iter_rows(min_row=2, values_only=True):
key = row[0]
value = row[1]
data[key] = value
```
3. 更改键并将更改后的数据写回 Excel 文件。
```
# 更改键
new_keys = ['new_key1', 'new_key2']
new_data = {}
for i, key in enumerate(data.keys()):
new_key = new_keys[i]
new_data[new_key] = data[key]
# 写回 Excel 文件
worksheet.delete_cols(1)
for i, key in enumerate(new_data.keys()):
worksheet.cell(row=i+2, column=1, value=key)
worksheet.cell(row=i+2, column=2, value=new_data[key])
# 保存 Excel 文件
workbook.save(filename='example.xlsx')
```
在上面的示例中,我们首先使用 `iter_rows` 方法读取列数据,并将其存储在字典中。然后,我们使用 `enumerate` 函数和 `new_keys` 列表生成新的键,并将更改后的数据存储在 `new_data` 字典中。最后,我们删除原始列并使用 `cell` 方法将新的键和值写入工作表中,并保存 Excel 文件。
阅读全文