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

embedded/2024/10/22 16:24:16/

一、场景分析

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

写一段 python脚本 将这组数据写入一个新建的 excel,表头是 【序号】、【姓名】、【性别】、【年龄】

student_list = [{'name':'小林', 'gender':'男', 'age':10}, {'name':'小红', 'gender':'女', 'age':11}, {'name':'小王', 'gender':'男', 'age':10}]

最终表格如下:

二、新建 excel 的数据写入

1、安装 openpyxl 库

在 Python 中可以使用 openpyxl 库来向 Excel 文件写入数据。

python">pip install openpyxl

 2、脚本

excel_write.py 如下:

python">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、运行

python">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 如下:

python">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、运行

python">py student_write.py

3、结果

四、读取 excel 数据到 list(解析 excel)

假设有如下 student.xlsx 表格,读取数据到 list [{'name': XX, 'gender': '', 'age': ''}]里面:

1、安装 pandas 库

在 Python 中可以使用 pandas 库来解析 Excel 文件。

python">pip install pandas

注意:

由于 pandas 库依赖 openpyxl 库,所以需要先安装 openpyxl,否则会报错:

2、脚本

 excel_read.py:

python">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、运行

python">py excel_read.py

4、结果

五、拥抱AI

AI 对于脚本语言的学习能力是最强的,这种简单的代码,完全可以叫AI帮我们写:


http://www.ppmy.cn/embedded/118165.html

相关文章

点赞10万+,1分钟教会你,用AI生成的宠物带娃视频

今天刷到了这样的宠物带娃视频,最近这种视频爆火,出现了很多爆款,今天就拆解一下,教大家学会这种视频用AI如何生成。 我们先看一下这类视频的数据,很多账号都在做,对于不了解AI的人来说,会觉得…

echarts地图的简单使用

echarts地图的简单使用 文章说明核心源码效果展示源码下载 文章说明 主要介绍echarts地图组件的简单使用,记录为文章,供后续查阅使用 目前只是简单的示例,然后还存在着一些小bug,主要是首个Legend的点击会导致颜色全部不展示的问题…

小程序-生命周期与WXS脚本

生命周期 什么是生命周期 生命周期(Life Cycle)是指一个对象从创建 -> 运行 -> 销毁的整个阶段,强调的是一个时间段。 我们可以把每个小程序运行的过程,也概括为生命周期: 小程序的启动,表示生命…

跨域问题、同源策略、CORS机制、Nginx解决跨域问题(AI问答,仅供参考)

跨域问题 跨域问题,请介绍一下 跨域问题通常是指在浏览器中由于同源策略(Same-origin policy)的限制而引起的问题。同源策略是Web安全的一个基本概念,它的目的是防止某个文档或脚本从一个来源加载资源时非法访问或修改另一个来源的…

GDB调试使用方法

为了详细讲解如何通过 GDB 进行调试,这里提供一个完整的例子,涵盖如何编写一个有问题的 C 程序,并通过 GDB 进行详细的调试操作,包括设置断点、查看变量、修改变量值等。 1. 编写一个示例 C 程序 首先编写一个简单的 C 程序&…

【Python】:列表使用方法! 附带教程源码

Python–列表 列表是什么 列表由一系列按特定顺序排列的元素组成。你可以创建包含字母表中所有字母、数字0~9或 所有家庭成员姓名的列表; 在python中使用([])来表示列表,并且使用逗号来分割其中的元素. bicycles[trek,cannondale,redline,specialized] print(bi…

uni-app vue3封装websocket,支持微信小程序

一、创建useWebSocket.js 文件 // useWebSocket.js // 获取链接的URL前缀 import {BASE_URL } from "./request";import {ref,onMounted,onBeforeUnmount } from "vue";// 假设我们使用 uni-app 的 globalData 或 Vuex 来管理用户状态 // 这里为了简单起…

循环中用sleep

echo <pre>;for ($i0;$i<10000000;$i){var_dump($i);} 没有用sleep,快速消耗cpu和内存 使用sleep后效果 echo <pre>;for ($i0;$i<10000000;$i){var_dump($i);usleep(1000);//php 暂停0.001秒} 总结&#xff1a;sleep能释放资源(cpu和内存)&#xff0c;但是运…