西安市免费做网站网站制作苏州企业
西安市免费做网站,网站制作苏州企业,东莞58同城网招聘找工作,wordpress调用jssdk接口目录
一、介绍excel
二、应用场景#xff1a;----可以完成什么操作
生活中遇见的场景
三、下载
四、excel模块
3.1、xlrd
语法#xff1a;
案例#xff1a; 算2020年与2021收入差距是多少
3.2、openpyxl
语法
案例1#xff1a;计算一年的工资--12个月
案例2----可以完成什么操作
生活中遇见的场景
三、下载
四、excel模块
3.1、xlrd
语法
案例 算2020年与2021收入差距是多少
3.2、openpyxl
语法
案例1计算一年的工资--12个月
案例2新建sheet页添加数据
效果
案例3九九乘法表
3.3、两个模块的区别
五、生成器
六、案例
抓取链家的长沙市所有房价放到excel文档中,爬了一页 代码演示
最后效果
七、思维导图总结 一、介绍excel
Excel是一种电子表格软件由微软公司开发和发布。它是一种用于数据分析、计算和管理的工具可以用于创建、编辑和组织数据表格进行数据分析和图表制作等。Excel具有强大的计算功能和丰富的数据处理功能被广泛应用于商业、金融、教育、科研等领域。Excel的文件格式为.xlsx它可以在Windows、Mac和其他操作系统上运行。 excel有不同的sheet页每个sheet页也有不同的内容 先获得对应的sheet页 二、应用场景----可以完成什么操作 1. 数据处理和分析将数据从数据库或其他数据源中提取出来然后用Python写入到Excel文件中以便进行进一步的数据处理和分析。 2. 数据报告和可视化将数据以图表、表格等形式写入Excel文件以便生成数据报告和可视化分析结果。 3. 自动化报表生成通过Python编写程序自动从数据源中提取数据并将其写入Excel文件以生成定期报表。 4. 数据导出将Python程序处理后的数据导出到Excel文件中以便与其他人分享或进行进一步处理。 5. 数据备份将Python程序处理后的数据写入Excel文件以便进行数据备份和存档。 生活中遇见的场景 ①把mysql数据导入到excel文件中然后报错了导出来日期类型是反着的格式对不上 列MySQL的格式2023/12/12 excel:12/12/2023 解决办法写个pythin脚本改变它 把文件读出来放到页面上去通过集合去调用一遍 ②准备一个excel文件通过python程序去读取excel文件内容 通过selenium打开网站过selenium方法往输入框中填入对应的内容然后会控制它去点击点击提交 三、下载 注excel不是python自带的要求下载 pip install xlrdpip install openpyxl 四、excel模块
3.1、xlrd 用于从Excel文件中读取数据支持读取旧版本的Excel文件xls格式但不支持写入或修改Excel文件。xlrd可以用于读取Excel文件中的单元格数据、格式、公式等内容。
语法 导入以有模块 from xlrd import open_workbook 打开文件 wbopen_workbook(hh.xlsx) 根据名字拿 s1wb.sheet_by_name(2020) 拿列 从0开始 s1.col_values(1) 案例 算2020年与2021收入差距是多少 from xlrd import open_workbook# 打开文件
wbopen_workbook(hh.xlsx)# 根据名字拿
s1wb.sheet_by_name(2020)# 算出总数
# sum(s1.col_values(1))# 从0开始 拿第二列
print([c for c in s1.col_values(1)])# 2020年收入
s1wb.sheet_by_name(2020)
t1sum(s1.col_values(1))# 2021年收入
s2wb.sheet_by_name(2020)
t2sum(s2.col_values(1))print(t2-t1) 注意 版本必须是1.2以下的 3.2、openpyxl 语法 导入模块 from openpyxl import load_workbook 读取以有文档 load_workbook(放你要读取的文档) wb就是一个工作表拿到整文档 wb load_workbook(hh.xlsx); 获取默认的那个sheet页 s1wb.active 切换sheet页#s2wb[放sheet页名字]
s2wb[2020] 新建一个sheet页wb.create_sheet(title) 获取所有sheet页
方法一 wb.sheetnames 方法二for sheet in wb:print(sheet.title) 获得sheet页的名字.title 单独只定某个格子 F4列 方式一wb[F4]内容 方式二
获取单元格col\row列和行ws3.cell(columcol,rowrow,value) 切片方式可以访问多个单元格--用名字cell_rangews[A1:C2] 读多个格子iter_row---用区域来读
注从1开始读取到3列读取到第2行for row in ws.iter_row(min_row1,max_col3,max_row2):for cell in row:print(cell) 获取所有行---每一行都是元组里面有很多单元格ws.rows 获取所有列ws.columns ws3 [AA10].value 注不好调 案例1计算一年的工资--12个月 方法一
wb load_workbook(hh.xlsx);
# 选中sheet页
s1 wb[2020]total 0
# 拿到需要的数据 拿12行
for i in range(1, 13):# 通过列方法拿 拿到工资数字在第二行# 测试一下# print(s1.cell(rowi,column2).value)# 每进来一次total s1.cell(rowi, column2).valueprint(total)
#最后保存就可以了
方法二
wb load_workbook(hh.xlsx);
# 选中sheet页
s1 wb[2020]# 获取第二行---遍历当前列
css1.iter_cols(min_row1,max_row12,min_cil2,max_col2)# 方式二列表推导式
cs[c for c in cs ][0]
# 拿到所有值
cs[c.value for c in cs]
# 求和并保存就可以了
print(sum(cs))# 方式一遍历
# for c in cs:
# for c in c:
案例2新建sheet页添加数据
# 导入
from openpyxl import load_workbook
wb load_workbook(hh.xlsx);
s3 wb.active
s3 wb.create_sheet(title2023)
# 遍历
for i in range(10):# append添加内容s3.append(range(5))# 保存
wb.save(demo.xlsx)
效果 案例3九九乘法表 注#新建sheet页但新建出来必定有不用新建只需要拿当前sheet页 # 导入
from openpyxl import Workbook# 新建
wb Workbook()# 获取默认sheet页
s1 wb.active# 改个名字
s1 title 九九乘法表
# 放内容---循环
for i in range(1, 10):for j in range(1, i1):# 拿到单元格s1.cell(rowi,columnj,valuef{i}*{j}{i*j})wb.save(99.xlsx)
效果 用于读取、写入和修改Excel文件支持读取和写入新版本的Excel文件xlsx格式。openpyxl可以用于创建新的Excel文件、读取和修改现有文件中的数据、样式、图表等内容。
3.3、两个模块的区别
①1.2.0之后的版本不支持xlsx格式openpyxl都支持
②xlrd只读取openpyxl可以读取也可以新建修改
③读取速度比较xlrd比openpyxl快
④ 老版新建出来教工作表新版新建出来叫工作簿 格式xls(老版的) xlsx(新版的---2013后面) 问题为什么xlrd不支持新版的xlsx格式而支持xls老版的 回答xlrd是一个Python模块用于从Excel文件中读取数据。它最初是为了处理旧版本的Excel文件xls格式而设计的因为在xlrd被开发的时候xlsx格式还没有成为主流。xls格式是二进制格式而xlsx格式是基于XML的开放格式。 当xlsx格式成为主流并且对其读取需求增加时openpyxl模块应运而生提供了对新版本Excel文件的读取、写入和修改功能。因此虽然xlrd不支持新版的xlsx格式但可以使用openpyxl模块来满足对新版本Excel文件的处理需求。 总的来说xlrd不支持新版的xlsx格式是因为它最初设计时的用途是处理旧版本的Excel文件而openpyxl则专门用于处理新版本的Excel文件。 五、生成器 简介生成器generator是一种特殊的迭代器它可以在迭代过程中动态生成值而不需要一次性将所有值存储在内存中。生成器使用 yield 关键字来返回值并且可以暂停和继续执行这使得它们非常灵活和高效。生成器可以通过 for 循环来迭代也可以使用 next() 函数来逐个获取值。生成器可以大大节省内存空间特别适用于处理大数据集或者需要动态生成值的情况。注
生成器不能中括号只能遍历 六、案例
抓取链家的长沙市所有房价放到excel文档中,爬了一页 注 for i in names:这个遍历的是元素 ---是没有下标的----所有用生成器enumerate 房价的名字 房价的价格 代码演示
from requests_html import HTMLSession
from openpyxl import Workbook# 发请求的对象
sessionHTMLSession();# 拿到响应码
respsession.get(https://cs.fang.lianjia.com/loupan/)# 拿到对应网站
htmlresp.html# 如果是异步请求要渲染---但是下面有下一页会报错
# html.render()# 测试是否拿到数据
# print(html.text)# 拿到房子的名字和价格
names[t.text for t in html.find(.resblock-name .name)]
# print([t.text for t in html.find(.resblock-name .name)])prices[t.text for t in html.find(.main-price .number)]
# print([t.text for t in html.find(.main-price .number)])# 新建excel
wbWorkbook()# 拿到默认的工作页
s1wb.active# 遍历
for i,v in enumerate(names):# 写入 i下标 v内容# 名字 i1因为从1开始s1.cell(rowi1,column1,valuev)# 价格s1.cell(rowi1,column2,valueprices[i])#保存
wb.save(lj.xlsx) 出现的报错网络超时重新运行就好 最后效果 七、思维导图总结
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/86790.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!