pip install openpyxl

几个常用的对象

  • Workbook:工作簿,一个包含多个Sheet的Excel文件
  • Worksheet:工作表,一个Workbook有多个Worksheet,如“Sheet1”,“Sheet2”等
  • Cell:单元格,存储具体的数据对象

导入包

#   导入的包在这里的用处
# 写入时间
from datetime import datetime
# 创建workbook对象
from openpyxl import Workbook
# 加载指定的Excel文件
from openpyxl import load_workbook
# 设置单元格对齐样式
from openpyxl.styles import Alignment
# 将数字转换为列字母
from openpyxl.utils import get_column_letter

创建Workbook、Worksheet

#   创建Workbook对象
wb = Workbook() # 获取活动工作表
ws = wb.active # 设置sheet的标题(默认为Sheet)
ws.title = 'my_sheet' # 新建一个Sheet(后面没有对这个sheet进行操作)
new_sheet = wb.create_sheet(title='new_sheet')

写入数据

#   将数字转换为列字母 27列为AA
print('52列的字母:', get_column_letter(52)) # 添加数据:一个单元格一个单元格的添加
# 六行五列
for row in range(1, 7):
for col in range(1, 6):
# 将当前单元格的列和行作为数据添加进去
cell_temp = ws.cell(row=row, column=col, value='{}{}'.format(get_column_letter(col), row))
# 设置单元格对齐方式:垂直居中
cell_temp.alignment = Alignment(horizontal='center', vertical='center') # 添加数据:一行一行的添加
ws.append([1, 2, 3, 4, 5])
ws.append((6, 7, 8, 9, 10)) # python类型将自动转换
ws['A9'] = datetime.now() # 最大行:max_row 最大列:max_column # 统计总行:在数据A列最后一行的下面显示总行
count_row_index = str(ws.max_row + 1)
ws['A' + count_row_index] = '总行:%d' % ws.max_row
# print('A' + count_row_index) 单元格:A10 # 统计总列:在数据第一行的最后一列后面显示总列
# 方法一:利用cell,得到具体第几行第几列的单元格
# count_col_index = ws.max_column + 1
# ws.cell(1, count_col_index, value='总列(方法一):%d' % ws.max_column)
# print(count_col_index) 单元格:第1行第6列 # 方法二:将数字转换为列字母
count_col_index = str(get_column_letter(ws.max_column + 1))
ws[count_col_index + '1'] = '总列(方法二):%d' % ws.max_column
# print(count_col_index + '1') 单元格:F1

保存

#    路径
path = r'C:\Users\Hlzy\Desktop\test.xlsx'
# 保存
wb.save(path)

读取execl

#   指定workbook
wb_read = load_workbook(path)
# 查看所有的sheet sheetnames
print('所有的sheet:', wb_read.sheetnames) # 只有一个sheet可以直接获取活动工作表
operate_sheet = wb_read.active
# 有多个sheet,需要使用其它时,需要指定sheet
# operate_sheet = wb_read['my_sheet'] print('\n数据:') # 从每行每列的单元格挨个读取值
for row in range(1, operate_sheet.max_row + 1):
for col in range(1, operate_sheet.max_column + 1):
# 根据将当前行数和列数取出cell的值
cell_value = operate_sheet.cell(row, col).value
# 单元格的值不为空时,打印出来
print(cell_value, end='\t') if cell_value else print(end='\t')
# 换行
print() # 可以在操作完数据后保存为新文件、或者覆盖旧文件
# operate_sheet['A1']='123'
# wb_read.save(path)
# wb_read.save(r'C:\Users\Hlzy\Desktop\test_new.xlsx')

效果

  • Excel中的数据

  • 打印的内容

Python对 Excel 的常用操作的更多相关文章

  1. Python—对Excel进行读写操作

    学习Python的过程中,我们会遇到Excel的读写问题.通过搜索得知,我们可以使用xlwt module将数据写入Excel表格,使用xlrd module从Excel读取数据.下面介绍如何实现使用 ...

  2. 使用Python对Excel进行读写操作

    学习Python的过程中,我们会遇到Excel的读写问题.这时,我们可以使用xlwt模块将数据写入Excel表格中,使用xlrd模块从Excel中读取数据.下面我们介绍如何实现使用Python对Exc ...

  3. Python 基礎 - 字符串常用操作

    字符串常用操作 今天就介紹一下常用的字符串操作,都是以 Python3撰寫的 首字母變大寫 #!/usr/bin/env python3 # -*- coding:utf-8 -*- name = & ...

  4. python基础之列表常用操作及知识点小结

    列表(list) List(列表) 是 Python 中使用最频繁的数据类型.列表可以完成大多数集合类的数据结构实现.它支持字符,数字,字符串甚至可以包含列表(所谓嵌套).列表用[ ]标识,是pyth ...

  5. python数据类型:字典dict常用操作

    字典是Python语言中的映射类型,他是以{}括起来,里面的内容是以键值对的形式储存的: Key: 不可变(可哈希)的数据类型.并且键是唯一的,不重复的. Value:任意数据(int,str,boo ...

  6. vbs中对excel的常用操作

    使用QTP自动化测试中,用到对excel的读写操作,这里把一些常用对excel操作的方法进行了归纳,总结.(对excel格式设置的常用操作这里没有进行总结.) Function DataToExcel ...

  7. Python对excel表格的操作.

    参考博客: https://blog.csdn.net/lmj19851117/article/details/78814721 ####一.excel的读取操作xlrd#### import xlr ...

  8. Python列表类型及常用操作

    Python列表类型 1.用途: 存放多个值,可以根据索引存取值 2.定义方式: 在[ ]内用逗号分割开多个任意类型的值 l=['yven','law','lyf'] #l=list(['yven', ...

  9. python对excel表格进行操作

    python 对 EXCEL 进行操作 背景:对excel表格中某一列进行base 64解码操作,由于数据量比较庞大,就考虑用Python代码完成. 首先,分析整个文件操作中分为三步,第一步,对需要解 ...

随机推荐

  1. mysql如何处理高并发(转)

    mysql高并发的解决方法有:优化SQL语句,优化数据库字段,加缓存,分区表,读写分离以及垂直拆分,解耦模块,水平切分等. 高并发大多的瓶颈在后台,在存储mysql的正常的优化方案如下: (1)代码中 ...

  2. React: React集成脚本库Fetch

    一.简介 React功能虽然很强大,但是说到底它仍然只是一个简单的创建视图的脚本库,如果想要实现一些更为复杂的业务逻辑,我们还需要使用React搭配其他的脚本库协同工作,以提高应用程序的性能.其中,F ...

  3. js实现常见排序算法

    电脑配置 CPU:AMD X4 640 内存: 宏想 DDR3 1600MHz 8g 主板:华擎 980DE3/U3S3 R2.0 浏览器:chrome 79.0.3945.88(正式版本) (64 ...

  4. puppeteer开发

    Chromium下载问题 https://github.com/GoogleChrome/puppeteer/ https://download-chromium.appspot.com/?platf ...

  5. C#基础之多线程与异步

    1.基本概念 多线程与异步是两个不同概念,之所以把这两个放在一起学习,是因为这两者虽然有区别,但也有一定联系. 多线程是一个技术概念,相对于单线程而言,多线程是多个单线程同时处理逻辑.例如,假如说一个 ...

  6. CF140C New Year Snowmen

    题目链接 这道题其实吧,水,我们教练说过,不要看标签,这只是CSP第一题的题目 思路嘛,priority_queue和贪心,就这样,很水 这是代码 还有,一定要在cf上交,不然--可以看一下提交记录, ...

  7. 剑指offer笔记面试题1----赋值运算符函数

    题目:如下为类型CMyString的声明,请为该类型添加赋值运算符函数. class CMyString{ public: CMyString(char* pData = nullptr); CMyS ...

  8. HTML连载55-网易注册界面实战之input填充

    一.又学一招:想要让两个盒子高度对齐,那么让他们浮动起来 <!DOCTYPE html> <html lang="en"> <head> < ...

  9. Html5 小游戏 俄罗斯方块

    导言 在一个风和日丽的一天,看完了疯狂HTML 5+CSS 3+JavaScript讲义,跟着做了书里最后一章的俄罗斯方块小游戏,并做了一些改进,作为自己前端学习的第一站. 游戏效果: 制作思路 因为 ...

  10. cesium 圆圈警戒扫描(附源码下载)

    前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...