利用python编写一个基于openpyxl的函数输入多列数据,同时写入列名
时间: 2024-05-25 09:15:47 浏览: 91
import openpyxl
def write_excel_data(data, sheet_name):
# 新建工作簿
wb = openpyxl.Workbook()
# 选中工作表
ws = wb.active
# 写入列名
col_names = list(data.keys())
for i, col_name in enumerate(col_names):
cell = ws.cell(row=1, column=i+1)
cell.value = col_name
# 写入数据
row_num = 2
for row_data in zip(*data.values()):
for i, cell_data in enumerate(row_data):
cell = ws.cell(row=row_num, column=i+1)
cell.value = cell_data
row_num += 1
# 保存工作簿
wb.save(sheet_name + '.xlsx')
# 测试
data = {'姓名': ['张三', '李四', '王五'], '年龄': [20, 25, 30], '性别': ['男', '女', '男']}
write_excel_data(data, 'test')
相关问题
抓取一个指定路径下指定Table的指定多列,录入至一个指定路径下Excel指定Table的指定多列末行的python代码
### 回答1:
以下是一个示例代码,可以根据需求进行修改:
```python
import pandas as pd
# 读取指定路径下的CSV文件
source_path = "/path/to/source/file.csv"
df_source = pd.read_csv(source_path)
# 指定需要抓取的列和表格
table_name = "table1"
table_columns = ["col1", "col2", "col3"]
# 筛选出指定表格的数据
df_table = df_source[df_source["table_name"] == table_name]
# 抓取指定列
df_selected = df_table[table_columns]
# 读取指定路径下的Excel文件
target_path = "/path/to/target/file.xlsx"
df_target = pd.read_excel(target_path, sheet_name="Sheet1")
# 将抓取到的数据追加到指定表格的末行
target_table_name = "table2"
target_columns = ["col4", "col5", "col6"]
df_target.loc[df_target["table_name"] == target_table_name, target_columns] = df_selected.values
# 将更新后的数据写入Excel文件
with pd.ExcelWriter(target_path) as writer:
df_target.to_excel(writer, sheet_name="Sheet1", index=False)
```
### 回答2:
你好!以下是一个用Python编写的代码,实现了根据指定路径和表名,从指定路径下的表中提取指定列数据,并将其录入到指定路径下的Excel表中指定多列末行的功能。
```python
import pandas as pd
def extract_and_insert_data(source_path, source_table, source_columns, destination_path, destination_table, destination_columns):
# 读取源表数据
source_data = pd.read_csv(source_path + source_table)
# 提取指定列数据
extracted_data = source_data[source_columns]
# 读取目标表数据
destination_data = pd.read_excel(destination_path + destination_table)
# 找到目标表中指定列的末行
last_row = destination_data.iloc[-1,:]
# 将提取的数据插入目标表的末行
destination_data.loc[len(destination_data)] = extracted_data
# 保存修改后的目标表
destination_data.to_excel(destination_path + destination_table, index=False)
# 设置参数并运行函数
source_path = '指定源表路径/'
source_table = '指定源表名.csv'
source_columns = ['指定列1', '指定列2', '指定列3']
destination_path = '指定目标表路径/'
destination_table = '指定目标表名.xlsx'
destination_columns = ['指定列A', '指定列B', '指定列C']
extract_and_insert_data(source_path, source_table, source_columns, destination_path, destination_table, destination_columns)
```
需要注意的是,上面的代码依赖于pandas库,若未安装该库,可通过`pip install pandas`来进行安装。
另外,代码中使用`read_csv`函数读取CSV文件,如果源表为其他格式(如Excel),则可根据需要更改为`read_excel`等相应的读取函数。
希望对你有帮助!
### 回答3:
要实现这个需求,可以使用Python中的pandas和openpyxl库来处理Excel文件。
首先,需要安装pandas和openpyxl库。可以使用以下命令安装:
```
pip install pandas openpyxl
```
接下来,使用以下代码实现抓取指定路径下的指定表格的指定多列,并将其录入到指定路径下的Excel文件的指定表格的指定多列末行:
```python
import pandas as pd
def copy_columns(source_path, source_table_name, source_columns, target_path, target_table_name, target_columns):
# 读取源表格的数据
source_data = pd.read_excel(source_path, sheet_name=source_table_name)
# 获取源表格中指定列的数据
source_selected_columns = source_data[source_columns]
# 读取目标表格的数据
target_data = pd.read_excel(target_path, sheet_name=target_table_name)
# 将源表格的指定列数据追加到目标表格的末尾
target_data = target_data.append(source_selected_columns, ignore_index=True)
# 将修改后的数据写入到目标Excel文件
with pd.ExcelWriter(target_path, mode='xlsxwriter') as writer:
target_data.to_excel(writer, sheet_name=target_table_name, index=False)
```
使用例子如下:
```python
source_path = '指定路径/源Excel文件.xlsx'
source_table_name = '源表格名'
source_columns = ['列名1', '列名2', '列名3']
target_path = '指定路径/目标Excel文件.xlsx'
target_table_name = '目标表格名'
target_columns = ['列名4', '列名5', '列名6']
copy_columns(source_path, source_table_name, source_columns, target_path, target_table_name, target_columns)
```
上述代码中,需要替换的部分是指定路径、表格名和列名的部分。
阅读全文