python作为一种解释性语言,简单高效的模式逐渐火爆。同时存在多种扩展性。

永不加班系列 python正确操作excel

实验环境:

系统:win10

语言:python3.8

承载软件:pycharm2021.1.2 (Professional Edition)

第三方类库:openpyxl、xlrd

一、第三方类库介绍

  xlrd库是一个很常用的读取excel文件的库,其对excel文件的读取可以实现比较精细的控制。

  openpyxl是实现excel的写入操作的第三方类库

一、安转第三方类库

  pip install xlrd==1.2.0 #此处一定要安转这个版本的xlrd,新版的xlrd可能会出现不兼容xlsx后缀文件的情况

  pip install openpyxl

二、引用xlrd读取excel数据

  首先我先来选取一个测试的数据,因为在之前写过Numpy和pandas的操作我们可以直接生成一个名为“test.xlsx”的文件。点击此处获取知识链接

  因为工作中大部分人的excel并不像此处如此完美所以不可以直击使用pandas库进行操作,结合工作中的实际情况自行斟酌使用

import numpy as np
import pandas as pd
df = pd.DataFrame(data=np.random.randint(1,90,size=[10,3]),columns=['日用户','日销售额','日成本'])
df.to_excel('test.xlsx')

  导入xlrd包并读取数据

import xlrd
#选中要读取的excel文件
test1 = xlrd.open_workbook('test.xlsx')
# 根据sheet索引获取sheet页 0表示1 1表示2 以此类推
sheet = test1.sheet_by_index(0)
# 根据sheet名称获取sheet页 0表示1 1表示2 以此类推
sheet1 = test1.sheet_by_name('Sheet1')
# 打印工作表的名称、行数和列数
print("打印工作表的名称、行数和列数:")
print('名称:',sheet.name, '行数:',sheet.nrows,'列数:', sheet.ncols)
# 选中列
col = sheet.col_values(2)
print('col',col)
# 选中行
row = sheet.row_values(2)
print('row',row)
# 根据行索引选定列 注意row()中以1开始 []中以0开始
print(sheet.row(1)[2].value)

三、引入openpyxl写入数据

  

import openpyxl
# 选中写入的excel文件
workbook=openpyxl.load_workbook('test.xlsx')
# 选中将要写入的sheet页
sheets = workbook["Sheet1"]
# 给第一个单元格写入数据;
sheets["A1"] = "黑龙江省"
# 设置字体为红色;字体大小;字体为粗体;字体为斜体
from openpyxl.styles import Font,colors
sheets["A1"].font = Font(color='981818',size = 15,bold = True,italic = True,)
# 获取第一个单元格的内容;
print(sheets["A1"].value)
# 给任意一个单元格赋值
sheets.cell(2,1,value = "江苏省")
# 保存数据,如若名称存在就覆盖 否则新建文件
workbook.save('更改后输出.xlsx')

效果如图

此处知识异常简单需要基本的语句操作练习即可可游刃有余。

下面推荐一个今天遇到的问题胡乱写了个demo

import openpyxl
import xlrd
# op选中文件
workbook1=openpyxl.load_workbook('test1.xlsx')
sheets=workbook1['Sheet1']
# xlrd选中文件
book = xlrd.open_workbook("test1.xlsx")
# 选中sheet1
sheet = book.sheet_by_index(0)
# 单位列
dw = sheet.col_values(2)
# 数量列
nb = sheet.col_values(1)
print(dw)
# 若单位为0则乘以10000否则不变
for i in range(len(dw)):
if dw[i]==0:
data = sheets.cell(i+1, 2).value=nb[i]*10000
else:
data = sheets.cell(i+1, 2).value = nb[i]
print(data)
# 删除单位(第三)列
sheets.delete_cols(3)
# 覆盖保存原数据
workbook1.save('test1.xlsx')

操作前

操作后

Auto Copied

学会python永不加班系列之操作excel的更多相关文章

  1. python:利用xlrd模块操作excel

    在自动化测试过程中,对测试数据的管理和维护是一个不可忽视的点.一般来说,如果测试用例数据不是太多的话,使用excel管理测试数据是个相对来说不错的选择. 这篇博客,介绍下如何利用python的xlrd ...

  2. 学好Python不加班系列之SCRAPY爬虫框架的使用

    scrapy是一个爬虫中封装好的一个明星框架.具有高性能的持久化存储,异步的数据下载,高性能的数据解析,分布式. 对于初学者来说还是需要有一定的基础作为铺垫的学习.我将从下方的思维导图中进行逐步的解析 ...

  3. python练习题--计算总分平均分操作excel

    ''' 有一个存着学生成绩的文件,里面存的是json串,json串读起来特别不直观,需要你写代码把它都写到excel中,并计算出总分和平均分,json格式如下 { "1":[&qu ...

  4. 分分钟钟学会Python - 第四章 文件操作

    4.1 文件基本操作 obj = open('路径',mode='模式',encoding='编码') obj.write() # 写入 obj.read() # 读取 obj.close() #关闭 ...

  5. Python操作Excel删除一个Sheet

    在使用Python进行数据分析处理,操作Excel,有时需要删除某个Excel里的某个sheet,这里记录一个我测试成功的一个办法 软件环境: 1.OS:Win 10 64位 2.Python 3.7 ...

  6. Python 利用Python操作excel表格之openyxl介绍Part2

    利用Python操作excel表格之openyxl介绍 by:授客 QQ:1033553122 欢迎加入全国软件测试交流qq群(群号:7156436) ## 绘图 c = LineChart()    ...

  7. Python 读写操作Excel —— 安装第三方库(xlrd、xlwt、xlutils、openpyxl)

    数据处理是 Python 的一大应用场景,而 Excel 则是最流行的数据处理软件.因此用 Python 进行数据相关的工作时,难免要和 Excel 打交道. 如果仅仅是要以表单形式保存数据,可以借助 ...

  8. Python读写操作Excel模块_xlrd_xlwt_xlutils

    Python 读写操作Excel -- 安装第三方库(xlrd.xlwt.xlutils.openpyxl) 如果仅仅是要以表单形式保存数据,可以借助 CSV 格式(一种以逗号分隔的表格数据格式)进行 ...

  9. 用Python操作excel文档

    使用Python第三方库 这一节我们学习如何使用Python去操作Excel文档.如果大家有人不知道Excel的话,那么建议先学一学office办公基础.这里想要操作Excel,必须安装一个Pytho ...

随机推荐

  1. AD学习笔记(基础)

    AD学习 1 学习思路 1.1 学什么 1.2 怎么学 2 AD本身 3 AD project 3.1 任务层级 3.2 PCB流程 4 原理图工作环境设置 5 开始 5.1工程创建 5.2 元件库介 ...

  2. [gdoi2018 day1]小学生图论题【分治NTT】

    正题 题目大意 一张随机的\(n\)个点的竞赛图,给出它的\(m\)条相互无交简单路径,求这张竞赛图的期望强联通分量个数. \(1\leq n,m\leq 10^5\) 解题思路 先考虑\(m=0\) ...

  3. CF708E-Student‘s Camp【数学期望,dp】

    正题 题目链接:https://www.luogu.com.cn/problem/CF708E 题目大意 有\(n*m\)的矩形网格,然后每次每行最左边和最右边的格子各有\(p=\frac{c}{d} ...

  4. 一篇文章搞定Selenium元素定位/封装/数据驱动

    小伙伴都知道,自动化最重的,又最"难"(因为实战中会碰到定位的各种坑)那就是定位元素.如果不熟练掌握定位,那只怕你比功能测式的小伙伴下班还会要晚!扎心了吧! Selenium常用定 ...

  5. 使用Jacoco统计服务端代码覆盖情况实践

    一.背景 随着需求的迭代,需求增加的同时,有可能会伴随着一些功能的下线.如果不对系统已经不用的代码进行梳理并删除不需要的代码,那么就会增加系统维护成本以及理解成本.但经历比较长的迭代以及系统交接,可能 ...

  6. SpringBoot 简易实现热搜邮件推送,妈妈再也不用担心我不了解国家大事了

    1.前言 上班的时候,无聊的时候,偶尔跑去百度看下热搜,所以就萌生出这种想法,通过邮件推送的方式实现效果,首先找到百度热搜的页面 热搜,话不多说,直接开干. 2.环境准备 因为是个SpringBoot ...

  7. 左手IRR,右手NPV,掌握发家致富道路密码

    智能手机的普及让世界成为了我们指尖下的方寸之地. 在各种信息爆炸出现的同时,五花八门的理财信息与我们的生活越贴越近.投资不再仅仅是企业行为,对于个人而言,也是很值得关注的内容. 但是落脚到很小的例子之 ...

  8. 开放下载!2021 解锁 Serverless 从入门到实战大“橙”就

    Serverless 架构即将引领云计算的下一个十年已成行业共识.处于变革中的开发者,大多已从观望状态转向尝试阶段, 越来越多 Serverless 落地场景被解锁. "Serverless ...

  9. FastAPI 学习之路(十九)处理错误

    系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之 ...

  10. PTA数据结构 习题2.1 简单计算器 (20分)

    习题2.1 简单计算器 (20分) 模拟简单运算器的工作.假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算. 输入格式: 输入在一行中给出一个四则运算 ...