一、场景分析
假设有如下一组列表数据:
写一段 python脚本 将这组数据写入一个新建的 excel,表头是 【序号】、【姓名】、【性别】、【年龄】
student_list = [{'name':'小林', 'gender':'男', 'age':10}, {'name':'小红', 'gender':'女', 'age':11}, {'name':'小王', 'gender':'男', 'age':10}]
最终表格如下:
二、新建 excel 的数据写入
1、安装 openpyxl 库
在 Python 中可以使用 openpyxl 库来向 Excel 文件写入数据。
pip install openpyxl
2、脚本
excel_write.py 如下:
from openpyxl import Workbook# 创建一个新的工作簿wb = Workbook()# 选择默认的活动工作表ws = wb.active# 数据准备student_list = [{'name':'小林', 'gender':'男', 'age':10}, {'name':'小红', 'gender':'女', 'age':11}, {'name':'小王', 'gender':'男', 'age':10}]# 向工作表中写入表头ws['A1'] = '序号'ws['B1'] = '姓名'ws['C1'] = '性别'ws['D1'] = '年龄'for i, item in enumerate(student_list): temp_list = [str(i+1)] print(item) temp_list.append(item['name']) temp_list.append(item['gender']) temp_list.append(item['age']) # 在已有数据的基础上继续写入,接收列表数据,如 [1, '小林', '男', 10] ws.append(temp_list)# 保存工作簿wb.save('output.xlsx')
在上述代码中:
这段代码特别适合于从网页爬下来列表数据,写入 excel,适合 "表哥表姐" 们的日常数据处理。
1、首先导入Workbook类。
2、创建一个新的工作簿对象wb。
3、获取默认的活动工作表ws。
4、使用类似字典的方式指定单元格的位置并为其赋表头。
5、遍历列表数据,按行输出。
6、最后使用 save()方法保存工作簿到指定的文件。
3、运行
py excel_write.py
4、结果
三、已存在的 excel 的数据写入
假设有如下一个已存在的 student.xlsx:
如何将 student_list = [{'name':'小林', 'gender':'男', 'age':10}, {'name':'小红', 'gender':'女', 'age':11}, {'name':'小王', 'gender':'男', 'age':10}] 这组数据写进入呢?
1、脚本
student_write.py 如下:
from openpyxl import load_workbook# 打开已有的工作簿wb = load_workbook('student.xlsx')# 选择默认的活动工作表ws = wb.active# 数据准备student_list = [{'name':'小林', 'gender':'男', 'age':10}, {'name':'小红', 'gender':'女', 'age':11}, {'name':'小王', 'gender':'男', 'age':10}]# 从第二行开始追加,跳过表头next_row = 2for i, item in enumerate(student_list): ws.cell(row=next_row, column=1, value=str(i+1)) ws.cell(row=next_row, column=2, value=item['name']) ws.cell(row=next_row, column=3, value=item['gender']) ws.cell(row=next_row, column=4, value=item['age']) next_row += 1# 保存工作簿wb.save('student.xlsx')
这段脚本就比较适合复杂格式模板的数据写入
ws.cell 表示给单元格设置数据
row: excel 行,从1开始
column: excel 列,从1开始
2、运行
py student_write.py
3、结果
四、读取 excel 数据到 list(解析 excel)
假设有如下 student.xlsx 表格,读取数据到 list [{'name': XX, 'gender': '', 'age': ''}]里面:
1、安装 pandas 库
在 Python 中可以使用 pandas 库来解析 Excel 文件。
pip install pandas
注意:
由于 pandas 库依赖 openpyxl 库,所以需要先安装 openpyxl,否则会报错:
2、脚本
excel_read.py:
import pandas as pd# 菜鸟教程:https://www.runoob.com/pandas/pandas-dataframe.html# 输入文档input_path=r"C:\Users\Administrator\Desktop\py\excel\student.xlsx"# 读取 Excel 文件,将其存储在一个DataFrame对象中df = pd.read_excel(input_path)# 查看数据的前几行# print(df.head())# 显示数据的行数和列数,元组类型,(3, 4) 第一个是行,第二个是列# print(df.shape)# 显示行数# print(df.shape[0])# 行数rows = df.shape[0]student_list = []# 遍历每一行for i in range(0, rows): item = {} item['name'] = df.loc[i, '姓名'] item['gender'] = df.loc[i, '性别'] item['age'] = int(df.loc[i, '年龄']) student_list.append(item)print(student_list)
df.loc[row_index, column_name]
通过标签选择数据;
row_index:行索引,从0开始。
column_name:列名。
3、运行
py excel_read.py
4、结果
五、有难度的实战案例
我的另一篇博文
六、拥抱AI
AI 对于脚本语言的学习能力是最强的,这种简单的代码,完全可以叫AI帮我们写: