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库进行操作,结合工作中的实际情况自行斟酌使用

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

  导入xlrd包并读取数据

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

三、引入openpyxl写入数据

  

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

效果如图

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

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

  1. import openpyxl
  2. import xlrd
  3. # op选中文件
  4. workbook1=openpyxl.load_workbook('test1.xlsx')
  5. sheets=workbook1['Sheet1']
  6. # xlrd选中文件
  7. book = xlrd.open_workbook("test1.xlsx")
  8. # 选中sheet1
  9. sheet = book.sheet_by_index(0)
  10. # 单位列
  11. dw = sheet.col_values(2)
  12. # 数量列
  13. nb = sheet.col_values(1)
  14. print(dw)
  15. # 若单位为0则乘以10000否则不变
  16. for i in range(len(dw)):
  17. if dw[i]==0:
  18. data = sheets.cell(i+1, 2).value=nb[i]*10000
  19. else:
  20. data = sheets.cell(i+1, 2).value = nb[i]
  21. print(data)
  22. # 删除单位(第三)列
  23. sheets.delete_cols(3)
  24. # 覆盖保存原数据
  25. 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. Java Web下MySQL数据库的增删改查(二)

    前文:https://www.cnblogs.com/Arisf/p/14095002.html 在之前图书管理系统上做了改进优化 图书管理系统v2 首先是项目结构: 1.数据库的连接: 1 pack ...

  2. 2. Go并发编程--GMP调度

    目录 1. 前言 1.1 Goroutine 调度器的 GMP 模型的设计思想 1.2 GMP 模型 1.3. 有关M和P的个数问题 1.4 P 和 M 何时会被创建 2. 调度器的设计策略 3. g ...

  3. 基于React和GraphQL的黛梦设计与实现

    写在前面 这是笔者在中秋无聊写着玩的,假期闲暇之余憋出来的帖子.麻雀虽小,但五脏俱全,涉及到的方方面面还是蛮全的.所以就设计了一个黛梦(demo)------ 打通了GraphQL的接口与前端交互的流 ...

  4. ESP8266- 使用AT指令获取网络时间

    前言:很早就考虑过用 ESP8266 获取网络时间,以前都是用 ESP8266 刷机智云的 Gagent 固件,但无奈现在手头的 ESP-01 的 Flash 只有 1M,实在无法胜任.经过在网络上的 ...

  5. PHP的switch和ifelse谁更快?

    对于多个if条件判断的情况下,我们使用switch来代替ifelse对于代码来说会更加的清晰明了,那么他们的效率对比呢?从PHP手册中发现有人已经对比过了,自己也用他的代码进行了实验: $s = ti ...

  6. 织梦arclist文章标题字数太短

    解决dedecms UTF-8首页文章标题显示字数太短的办法原因分析:因为UTF-8编码1个中文汉字占用的是3个字节,GBK占用的是2个字节,所以,原先$titlelen = AttDef($titl ...

  7. Batch Size对神经网络训练的影响

    ​ 前言 这篇文章非常全面细致地介绍了Batch Size的相关问题.结合一些理论知识,通过大量实验,文章探讨了Batch Size的大小对模型性能的影响.如何影响以及如何缩小影响等有关内容. 本文来 ...

  8. 鸿蒙内核源码分析(进程概念篇) | 进程在管理哪些资源 | 百篇博客分析OpenHarmony源码 | v24.01

    百篇博客系列篇.本篇为: v24.xx 鸿蒙内核源码分析(进程概念篇) | 进程在管理哪些资源 | 51.c.h .o 进程管理相关篇为: v02.xx 鸿蒙内核源码分析(进程管理篇) | 谁在管理内 ...

  9. YbtOJ#732-斐波那契【特征方程,LCT】

    正题 题目链接:http://www.ybtoj.com.cn/contest/125/problem/2 题目大意 给出\(n\)个点的一棵树,以\(1\)为根,每个点有点权\(a_i\).要求支持 ...

  10. Redis之品鉴之旅(五)

    Redis事务 原子性:就是最小的单位 一致性:好多命令,要么全部执行成功,要么全部执行失败 隔离性:一个会话和另一个会话之间是互相隔离的 持久性:执行了就执行了,数据保存在硬盘上 典型例子:银行转账 ...