基于Python对xslxslx文件进行操作
利用python操作表格文件
读取xsl格式文件-源码
import xlrd# 读取xls文件中的工作对象
wb = xlrd.open_workbook('示例文件/xxx物理学与信息技术学院.xls')
print(wb)# 获取所有的工作表名称
sheet_names = wb.sheet_names()
# print(sheet_names)# 选择要读取的具体工作表对象
sheet = wb.sheet_by_name(sheet_names[0])
# print(sheet)# 查看工作表的行和列数
# print(sheet.nrows,sheet.ncols) # 329 6# 通过循环的方式获取工作表中每行和每列的数据
for row in range(sheet.nrows):for col in range(sheet.ncols):# print(row,col)# 通过cell对象中的value属性获取具体单元格式中的数据value = sheet.cell(row, col).value# print(value)
'''# 将第一行以外的数据进行格式化处理if row > 0:# 将第一列的数据转化为年月日的格式if col == 0:value = xlrd.xldate_as_tuple(value,0)# print(value)# :>2d 表示月份和日期保留两位数value = f'{value[0]}年{value[1]:>02d}月{value[2]:>02d}日'# print(value)else:# 将除了第一列的数据之外的数据保留两位小数value = f'{value:.2f}'print(value,end='\t')print() # 实现换行的效果
'''
读取xsl格式文件-源码解析
这段代码使用 xlrd 库来读取和处理一个名为 xxx物理学与信息技术学院.xls 的 Excel 文件。以下是对代码的详细分析:
1. 导入库
import xlrd
-
xlrd是一个用于读取 Excel 文件的 Python 库。
2. 打开工作簿
wb = xlrd.open_workbook('示例文件/xxx物理学与信息技术学院.xls')
print(wb)
-
xlrd.open_workbook函数用于打开一个 Excel 文件,并返回一个工作簿对象wb。 -
print(wb)打印工作簿对象,通常会显示文件路径和一些元数据。
3. 获取所有的工作表名称
sheet_names = wb.sheet_names()
# print(sheet_names)
-
wb.sheet_names()返回一个包含所有工作表名称的列表。
4. 选择要读取的具体工作表对象
sheet = wb.sheet_by_name(sheet_names[0])
# print(sheet)
-
wb.sheet_by_name(sheet_names[0])根据工作表名称获取第一个工作表对象sheet。
5. 查看工作表的行和列数
# print(sheet.nrows, sheet.ncols) # 329 6
-
sheet.nrows返回工作表的行数。 -
sheet.ncols返回工作表的列数。
6. 通过循环的方式获取工作表中每行和每列的数据
for row in range(sheet.nrows):for col in range(sheet.ncols):value = sheet.cell(row, col).value# 将第一行以外的数据进行格式化处理if row > 0:# 将第一列的数据转化为年月日的格式if col == 0:value = xlrd.xldate_as_tuple(value, 0)value = f'{value[0]}年{value[1]:>02d}月{value[2]:>02d}日'else:# 将除了第一列的数据之外的数据保留两位小数value = f'{value:.2f}'print(value, end='\t')print() # 实现换行的效果
-
外层循环
for row in range(sheet.nrows)遍历每一行。 -
内层循环
for col in range(sheet.ncols)遍历每一列。 -
sheet.cell(row, col).value获取指定单元格的值。 - 如果当前行不是第一行(即
row > 0),则对数据进行格式化处理:-
如果当前列是第一列(即
col == 0),则将日期格式化为年月日的形式。 -
否则,将数值保留两位小数。
-
-
print(value, end='\t')打印格式化后的值,并使用制表符\t分隔。 -
print()打印一个空行,实现换行的效果。
总结
这段代码的主要功能是读取一个 Excel 文件,并对其中的数据进行格式化处理:
-
将第一列的日期格式化为
年月日的形式。 -
将其他数值保留两位小数。
-
使用制表符分隔每列的数据,并在每行结束后换行。
通过这种方式,代码能够有效地处理和展示 Excel 文件中的数据。
向xsl文件写入数据-源码
import xlwt
import random# 创建工作薄对象
wb = xlwt.Workbook()# 创建工作表对象
sheet = wb.add_sheet('高一三班')# 定义学生姓名
students = ['张三','李四','王五','里尔','飞天','闰土']# 通过列表生成式生成 语数英成绩
scores = [[random.randrange(50,151) for i in range(3)] for j in range(6)]
# print(scores)# 创建表头数据
titles = ['姓名','语文','数学','英语']for index,title in enumerate(titles):# print(index,title)# 将数据添加到sheet工作表中# 第一个参数表示工作行 第二个参数表示列 第三个参数表示具体内容sheet.write(0,index,title)# 将学生的姓名成绩依次写入到文件中
for row in range(len(scores)):# print(row)sheet.write(row+1,0,students[row]) # 从第二行开始写入相关的数据for col in range(len(scores[row])):sheet.write(row+1,col+1,scores[row][col])
# 将数据写入到工作薄当中
wb.save('示例文件/考试成绩.xls')
向xsl文件写入数据-源码解析
这段代码使用了 xlwt 库来创建一个 Excel 文件,并在其中写入学生的姓名和随机生成的语文、数学、英语成绩。以下是对代码的详细分析:
1. 导入库
import xlwt
import random
-
xlwt是一个用于创建和写入 Excel 文件的 Python 库。 -
random库用于生成随机数。
2. 创建工作簿对象
wb = xlwt.Workbook()
-
xlwt.Workbook()创建一个新的工作簿对象wb。
3. 创建工作表对象
sheet = wb.add_sheet('高一三班')
-
wb.add_sheet('高一三班')在工作簿中添加一个名为 '高一三班' 的工作表,并返回该工作表对象sheet。
4. 定义学生姓名
students = ['张三', '李四', '王五', '里尔', '飞天', '闰土']
-
students列表包含了六个学生的姓名。
5. 生成成绩数据
scores = [[random.randrange(50, 151) for i in range(3)] for j in range(6)]
-
使用列表生成式生成一个包含 6 个学生的语文、数学、英语成绩的二维列表
scores。 -
random.randrange(50, 151)生成一个 50 到 150 之间的随机整数。
6. 创建表头数据
titles = ['姓名', '语文', '数学', '英语']
-
titles列表包含了表头信息。
7. 写入表头数据
for index, title in enumerate(titles):sheet.write(0, index, title)
-
使用
enumerate(titles)遍历titles列表,同时获取索引index和标题title。 -
sheet.write(0, index, title)将表头数据写入工作表的第一行。
8. 写入学生姓名和成绩
for row in range(len(scores)):sheet.write(row + 1, 0, students[row]) # 从第二行开始写入相关的数据for col in range(len(scores[row])):sheet.write(row + 1, col + 1, scores[row][col])
-
外层循环遍历
scores列表的每一行。 -
sheet.write(row + 1, 0, students[row])将学生姓名写入工作表的第二行及之后的每一行的第一列。 -
内层循环遍历
scores[row]列表的每一个元素。 -
sheet.write(row + 1, col + 1, scores[row][col])将成绩写入工作表的第二行及之后的每一行的相应列。
9. 保存工作簿
wb.save('示例文件/考试成绩.xls')
-
wb.save('示例文件/考试成绩.xls')将工作簿保存为名为 '考试成绩.xls' 的文件。
总结
这段代码的主要功能是创建一个 Excel 文件,并在其中写入学生的姓名和随机生成的语文、数学、英语成绩。通过使用 xlwt 库,代码能够方便地创建和操作 Excel 文件,实现对数据的存储和管理。
读取xslx格式文件-源码
import openpyxl# 加载工作薄
wb = openpyxl.load_workbook(r'示例文件\xx硕士信息.xlsx')# 获取工作表名称
print(wb.sheetnames) # ['Sheet1', 'Sheet2', 'Sheet3']# 获取要操作的工作表
sheet = wb.worksheets[0]# 获取工作表中单元格的范围
# print(sheet.dimensions) # A1:E64814# 获取行数和列数
# print(sheet.max_row,sheet.max_column) # 64814 5# 获取指定单元格的值
# print(sheet.cell(3,3).value)# 获取多个单元格的值
# print(sheet['A2:C5'])# 获取单元格中所有的数据
for row in range(2,69):for col in "ABCDE":value = sheet[f"{col}{row}"].valueprint(value,end='\t')print() # 换行
读取xslx格式文件-源码解析
这段代码使用了 openpyxl 库来加载和操作一个名为 xx硕士信息.xlsx 的 Excel 文件。以下是对代码的详细分析:
1. 导入库
import openpyxl
-
openpyxl是一个用于读取和写入 Excel 文件的 Python 库。
2. 加载工作簿
wb = openpyxl.load_workbook(r'示例文件\清华硕士信息.xlsx')
-
openpyxl.load_workbook(r'示例文件\xx硕士信息.xlsx')加载指定的 Excel 文件,并返回一个工作簿对象wb。
3. 获取工作表名称
print(wb.sheetnames) # ['Sheet1', 'Sheet2', 'Sheet3']
-
wb.sheetnames返回一个包含所有工作表名称的列表。
4. 获取要操作的工作表
sheet = wb.worksheets[0]
-
wb.worksheets[0]获取工作簿中的第一个工作表对象sheet。
5. 获取工作表中单元格的范围
# print(sheet.dimensions) # A1:E64814
-
sheet.dimensions返回工作表中单元格的范围,例如A1:E64814。
6. 获取行数和列数
# print(sheet.max_row,sheet.max_column) # 64814 5
-
sheet.max_row返回工作表中的最大行数。 -
sheet.max_column返回工作表中的最大列数。
7. 获取指定单元格的值
# print(sheet.cell(3,3).value)
-
sheet.cell(3,3).value获取第 3 行第 3 列单元格的值。
8. 获取多个单元格的值
# print(sheet['A2:C5'])
-
sheet['A2:C5']获取从 A2 到 C5 的矩形区域内的所有单元格的值。
9. 获取单元格中所有的数据
for row in range(2,69):for col in "ABCDE":value = sheet[f"{col}{row}"].valueprint(value,end='\t')print() # 换行
-
外层循环
for row in range(2,69)遍历从第 2 行到第 68 行。 -
内层循环
for col in "ABCDE"遍历从 A 到 E 的列。 -
sheet[f"{col}{row}"].value获取指定单元格的值。 -
print(value,end='\t')打印单元格的值,并使用制表符\t分隔。 -
print()打印一个空行,实现换行的效果。
总结
这段代码的主要功能是加载一个 Excel 文件,并从中读取数据。通过使用 openpyxl 库,代码能够方便地访问和操作 Excel 文件中的单元格数据,实现对数据的读取和处理。
向xslx文件写入数据-源码
import random
import openpyxl# 创建工作薄
wb = openpyxl.Workbook()# 添加工作表
sheet = wb.active
sheet.title = '测试成绩'# 写入数据 定义标题
titles = ("姓名", "射箭", "射击", "足球")# 将标题写入到文件中
for col_index, title in enumerate(titles):sheet.cell(1, col_index + 1, title)# 定义学生姓名
students = ("echo", "时针", "小梦", "大盒", "小羽", "snowy", "辰辰", "痞老板", "Gscsed")# 将姓名和成绩写入到文件中
for row_index, student in enumerate(students):sheet.cell(row_index + 2, 1, student)for col_index in range(2, 5):sheet.cell(row_index + 2, col_index, random.randrange(50, 101))
# 将数据保存到工作薄中
wb.save('示例文件\测试成绩.xlsx')
向xslx文件写入数据-源码解析
这段代码使用了 openpyxl 库来创建一个 Excel 文件,并在其中写入学生的姓名和随机生成的射箭、射击、足球成绩。以下是对代码的详细分析:
1. 导入库
import random
import openpyxl
-
random库用于生成随机数。 -
openpyxl是一个用于创建和写入 Excel 文件的 Python 库。
2. 创建工作簿
wb = openpyxl.Workbook()
-
openpyxl.Workbook()创建一个新的工作簿对象wb。
3. 添加工作表
sheet = wb.active
sheet.title = '测试成绩'
-
wb.active获取活动工作表对象。 -
sheet.title = '测试成绩'将活动工作表的标题设置为 '测试成绩'。
4. 写入数据 定义标题
titles = ("姓名", "射箭", "射击", "足球")
-
titles元组包含了列标题。
5. 将标题写入到文件中
for col_index, title in enumerate(titles):sheet.cell(1, col_index + 1, title)
-
使用
enumerate(titles)遍历titles元组,同时获取索引col_index和标题title。 -
sheet.cell(1, col_index + 1, title)将标题写入工作表的第一行。
6. 定义学生姓名
students = ("echo", "时针", "小梦", "大盒", "小羽", "snowy", "辰辰", "痞老板", "Gscsed")
-
students元组包含了学生的姓名。
7. 将姓名和成绩写入到文件中
for row_index, student in enumerate(students):sheet.cell(row_index + 2, 1, student)for col_index in range(2, 5):sheet.cell(row_index + 2, col_index, random.randrange(50, 101))
-
外层循环遍历
students元组的每一个元素。 -
sheet.cell(row_index + 2, 1, student)将学生姓名写入工作表的第二行及之后的每一行的第一列。 -
内层循环遍历射箭、射击、足球这三列。
-
sheet.cell(row_index + 2, col_index, random.randrange(50, 101))将随机生成的成绩写入工作表的第二行及之后的每一行的相应列。
8. 将数据保存到工作簿中
wb.save('示例文件\测试成绩.xlsx')
-
wb.save('示例文件\测试成绩.xlsx')将工作簿保存为名为 '测试成绩.xlsx' 的文件。
总结
这段代码的主要功能是创建一个 Excel 文件,并在其中写入学生的姓名和随机生成的射箭、射击、足球成绩。通过使用 openpyxl 库,代码能够方便地创建和操作 Excel 文件,实现对数据的存储和管理。
相关文章:
基于Python对xslxslx文件进行操作
利用python操作表格文件 读取xsl格式文件-源码 import xlrd# 读取xls文件中的工作对象 wb xlrd.open_workbook(示例文件/xxx物理学与信息技术学院.xls) print(wb)# 获取所有的工作表名称 sheet_names wb.sheet_names() # print(sheet_names)# 选择要读取的具体工作表对象 s…...
语音芯片赋能可穿戴设备:开启个性化音频新体验
在科技日新月异的今天,语音芯片与可穿戴设备的携手合作,正引领我们步入一个前所未有的个性化音频时代。这一创新融合,用户可以享受到更加个性化、沉浸式的音频体验。下面将详细介绍语音芯片与可穿戴设备合作的优点和具体应用。 1. 定制化音效…...
Unity学习笔记(一)如何实现物体之间碰撞
前言 本文为Udemy课程The Ultimate Guide to Creating an RPG Game in Unity学习笔记 如何实现物体之间碰撞 实现物体之间的碰撞关键组件:Rigidbody 2D(刚体)、Collider 2D(碰撞体)、Sprite Renderer(Sprite渲染器) 实现物体之间的碰撞 …...
LinkedList与链表 和 链表面试题
目录 一. ArrayList 与 LinkedList 的优缺点: 二. LinkedList 的分类 三.链表的十道面试题: 1. 删除链表中等于给定值 val 的所有节点。题目链接 2. 反转⼀个单链表。题目链接 3. 输⼊⼀个链表,输出该链表中倒数第k个结点。题目链接 4.给定…...
ansible自动化运维(一)简介及清单,模块
相关文章ansible自动化运维(二)playbook模式详解-CSDN博客ansible自动化运维(三)jinja2模板&&roles角色管理-CSDN博客ansible自动化运维(四)运维实战-CSDN博客 ansible自动化运维工具 1.什么是自…...
利用代理IP爬取Zillow房产数据用于数据分析
引言 最近数据分析的热度在编程社区不断攀升,有很多小伙伴都开始学习或从事数据采集相关的工作。然而,网站数据已经成为网站的核心资产,许多网站都会设置一系列很复杂的防范措施,阻止外部人员随意采集其数据。为了解决这个问题&a…...
大屏开源项目go-view二次开发1----环境搭建(C#)
最近公司要求做一个大屏的程序用于展示公司的产品,我以前也没有相关的经验,最糟糕的是公司没有UI设计的人员,领导就一句话要展示公司的产品,具体展示的内容细节也不知道,全凭借自己发挥。刚开始做时是用wpf做的&#x…...
【含开题报告+文档+PPT+源码】基于微信小程序的点餐系统的设计与实现
开题报告 随着互联网技术的日益成熟和消费者生活水平与需求层次的显著提升,外卖点餐平台在中国市场上迅速兴起并深深植根于民众日常生活的各个角落。这类平台的核心在于构建了一个基于互联网的强大订餐服务系统,它无缝整合了餐饮商户资源与广大消费者的…...
k8s中用filebeat文件如何收集不同service的日志
以下是一个详细的从在 Kubernetes 集群中部署 Filebeat,到实现按web-oper、web-api微服务分离日志并存储到不同索引的完整方案: 理解需求:按服务分离日志索引 在 Kubernetes 集群中,有web-oper和web-api两种微服务,希…...
Mysql数据库中,什么情况下设置了索引但无法使用?
在MySQL数据库中,即使已经正确设置了索引,但在某些情况下索引可能无法被使用。 以下是一些常见的情况: 1. 数据分布不均匀 当某个列的数据分布非常不均匀时,索引可能无法有效地过滤掉大部分的数据,导致索引失效。 …...
QT6学习第十一天 Qt Quick控件 Control
QT6学习第十一天 Qt Quick控件控件基类 Control按钮类控件指示器类控件输入类控件日期类控件 Qt Quick控件 Qt Quick本身是为了移动触摸界面而生的,但Qt的跨平台性也决定了它需要支持多种系统。为了支持桌面平台开发,从Qt 5.1开始,增加了新的…...
【唐叔学算法】第16天:枚举-探索所有可能性的艺术
大家好,我是唐叔。今天我们要探讨的是一个看似简单却非常实用的概念——枚举(Enumeration)。它不仅仅是一种数据类型,在算法设计中也是一种解决问题的策略。通过系统地遍历所有可能的情况,我们可以找到满足特定条件的答…...
【OpenCV】基于GrabCut算法的交互式前景提取
介绍 GrabCut 算法是一种用于图像分割的交互式前景提取技术,它结合了图割(Graph Cut)方法和迭代优化过程。该算法最初由 Rother, Kolmogorov 和 Blake 在 2004 年提出,并因其高效性和准确性而被广泛应用于计算机视觉领域。OpenCV…...
【Flask+OpenAI】利用Flask+OpenAI Key实现GPT4-智能AI对话接口demo - 从0到1手把手全教程(附源码)
文章目录 前言环境准备安装必要的库 生成OpenAI API代码实现详解导入必要的模块创建Flask应用实例配置OpenAI API完整代码如下(demo源码)代码解析 利用Postman调用接口 了解更多AI内容结尾 前言 Flask作为一个轻量级的Python Web框架,凭借其…...
最短路----Dijkstra算法详解
简介 迪杰斯特拉(Dijkstra)算法是一种用于在加权图中找到单个源点到所有其他顶点的最短路径的算法。它是由荷兰计算机科学家艾兹格迪科斯彻(Edsger Dijkstra)在1956年提出的。Dijkstra算法适用于处理带有非负权重的图。迪杰斯特拉…...
ORB-SLAM3源码学习:G2oTypes.cc: void EdgeInertial::computeError 计算预积分残差
前言 这部分函数涉及了g2o的内容以及IMU相关的推导内容,需要你先去进行这部分的学习。 1.函数声明 void EdgeInertial::computeError() 2.函数定义 涉及到的IMU的公式: {// TODO Maybe Reintegrate inertial measurments when difference between …...
Unity协程机制详解
Unity的协程(Coroutine)是一种异步编程的机制,允许在多个帧之间分割代码的执行,而不阻塞主线程。与传统的多线程不同,Unity的协程在主线程中运行,并不会开启新的线程。 什么是协程? 协程是一种…...
2024年【高压电工】最新解析及高压电工考试总结
高压电工考试是电力行业从业人员必须通过的资格考试之一,它不仅检验了考生对高压电技术的掌握程度,还考验了考生在实际操作中的安全意识和应急处理能力。为了帮助广大考生更好地备考,本文整理了10道2024年高压电工考试的最新解析及总结试题&a…...
OELOVE 6.0城市列表模板
研究了好久OELOVE6.0源码,一直想将城市列表给单独整出来,做地区排名,但是PHP程序都是加密的,非常难搞,做二开都是要命的处理不了,在这里有一个简单方法可以处理城市列表,并且可以自定义TDK&…...
如何将你的 Ruby 应用程序从 OpenSearch 迁移到 Elasticsearch
作者:来自 Elastic Fernando Briano 将 Ruby 代码库从 OpenSearch 客户端迁移到 Elasticsearch 客户端的指南。 OpenSearch Ruby 客户端是从 7.x 版 Elasticsearch Ruby 客户端分叉而来的,因此代码库相对相似。这意味着当将 Ruby 代码库从 OpenSearch 迁…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...
iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...
Golang——6、指针和结构体
指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...
Leetcode33( 搜索旋转排序数组)
题目表述 整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 < k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...
HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散
前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说,在叠衣服的过程中,我会带着团队对比各种模型、方法、策略,毕竟针对各个场景始终寻找更优的解决方案,是我个人和我司「七月在线」的职责之一 且个人认为,…...
