当前位置: 首页 > news >正文

Python 将数据写入 excel(新手入门)

一、场景分析

假设有如下一组列表数据:

写一段 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帮我们写:

相关文章:

  • mac Wireshark You do not have permission to capture on device “rvio“.
  • MMD模型及动作一键完美导入UE5-Blender方案(三)
  • Pygame中Sprite实现逃亡游戏4
  • js替换css主题变量并切换iconfont文件
  • 11-pg内核之锁管理器(六)死锁检测
  • JavaScript中的输出方式
  • SSM框架学习(四、SpringMVC实战:构建高效表述层框架)
  • MAC的几个常见的快捷方式
  • Llama 3.2来了,多模态且开源!AR眼镜黄仁勋首批体验,Quest 3S头显价格低到离谱
  • LLM - 使用 vLLM 部署 Qwen2-VL 多模态大模型 (配置 FlashAttention) 教程
  • 测试面试题:请你分别介绍一下单元测试、集成测试、系统测试、验收测试、回归测试
  • CSS3 字体
  • 【matlab】读取.rec文件格式,脑电数据格式(Trodes)文件格式处理
  • 京东快递员的创新服务
  • 【网站打包app】Prime Web 1.0.10 – 将网站转换为 Flutter 应用程序 |Web View 应用程序 |Web 到 App
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • 2017 前端面试准备 - 收藏集 - 掘金
  • Druid 在有赞的实践
  • ES6系列(二)变量的解构赋值
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • If…else
  • Java精华积累:初学者都应该搞懂的问题
  • Laravel5.4 Queues队列学习
  • mongo索引构建
  • Netty源码解析1-Buffer
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • Sublime Text 2/3 绑定Eclipse快捷键
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • 闭包--闭包之tab栏切换(四)
  • 让你的分享飞起来——极光推出社会化分享组件
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 写给高年级小学生看的《Bash 指南》
  • 一个完整Java Web项目背后的密码
  • 运行时添加log4j2的appender
  • Java总结 - String - 这篇请使劲喷我
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • # Redis 入门到精通(一)数据类型(4)
  • # 职场生活之道:善于团结
  • #etcd#安装时出错
  • #pragma预处理命令
  • #单片机(TB6600驱动42步进电机)
  • (4) PIVOT 和 UPIVOT 的使用
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (PADS学习)第二章:原理图绘制 第一部分
  • (Python第六天)文件处理
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (zhuan) 一些RL的文献(及笔记)
  • (二)fiber的基本认识
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (每日一问)计算机网络:浏览器输入一个地址到跳出网页这个过程中发生了哪些事情?(废话少说版)
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (转)关于多人操作数据的处理策略