读取/写入:openpyxl

demo1

import openpyxl
import os # 创建excel
def write_excel_xlsx(path, sheet_name, value):
if not os.path.exists(path):
write_new_excel_xlsx(path, sheet_name, value)
else:
append_write_excel_xlsx(path, sheet_name, value) # 新创建excel
def write_new_excel_xlsx(path, sheet_name, value):
index = len(value)
workbook = openpyxl.Workbook()
sheet = workbook.active
sheet.title = sheet_name
for i in range(0, index):
for j in range(0, len(value[i])):
sheet.cell(row=i + 1, column=j + 1, value=str(value[i][j]))
workbook.save(path)
print("xlsx格式表格写入数据成功!") # 追加写入
def append_write_excel_xlsx(path, sheet_name, value):
workbook = openpyxl.load_workbook(path)
sheet = workbook[sheet_name]
old_max_row_mum = sheet.max_row # 已存在文件最大的行数
for i in range(len(value)):
item = value[i]
for column in range(len(item)):
# print(oldRowNum + 1, column + 1, item[column])
# 参数对应 行, 列, 值
sheet.cell(row=old_max_row_mum + 1, column=column + 1, value=str(item[column]))
old_max_row_mum += 1
workbook.save(path)
print("xlsx格式表格追加写入数据成功!") def read_excel_xlsx(path, sheet_name):
workbook = openpyxl.load_workbook(path)
# sheet = wb.get_sheet_by_name(sheet_name)这种方式已经弃用,不建议使用
# sheet = workbook.worksheets[0]
sheet = workbook[sheet_name] # 方式一
for row in sheet.rows:
# 收集当前行每个单元格中的数据
row_text_list = []
for cell in row:
row_text_list.append(cell.value)
print(cell.value, "\t", end="")
print(row_text_list) # ["111", "女", "66", "石家庄", "运维工程师"]
print() # 方式二
for row in sheet.iter_rows(min_row=2): # 从第二行开始读
print(row[1].value) # 方式三
for row in sheet.iter_rows(min_row=2, max_row=5): # 从第2-5行数据
if row[1].value is None: # 没有时输出None
continue
print(row[1].value) # 当前文件地址
base_dir = os.path.dirname(os.path.abspath(__file__)) # 'G:\\site\\python\\learn\\base'
book_name_xlsx = os.path.join(base_dir, 'xlsx格式测试工作簿.xlsx') # 'G:\\site\\python\\learn\\base\\xlsx格式测试工作簿.xlsx' sheet_name_xlsx = 'xlsx格式测试表' value1 = [["姓名", "性别", "年龄", "城市", "职业"],
["111", "女", "66", "石家庄", "运维工程师"],
["222", "男", "55", "南京", "饭店老板"],
["333", "女", "27", "苏州", "保安"], ] value2 = [
["444", "男", "55", "南京", "饭店老板"],
["55", "女", "27", "苏州", "保安"], ] write_excel_xlsx(book_name_xlsx, sheet_name_xlsx, value1)
write_excel_xlsx(book_name_xlsx, sheet_name_xlsx, value2)
# read_excel_xlsx(book_name_xlsx, sheet_name_xlsx)

更多文档:

python 操作 xlsx的更多相关文章

  1. python操作excel表格(xlrd/xlwt)

    最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而且不太能满足需求,不过经过一番对源码的"研究&q ...

  2. Python操作excel(xlrd和xlwt)

    Python操作excel表格有很多支持的库,例如:xlrd.xlwt.openpyxl.win32com,下面介绍使用xlrd.xlwt和xlutils模块这三个库不需要其他的支持,在任何操作系统上 ...

  3. Python操作excel表格

    用Python操作Excel在工作中还是挺常用的,因为毕竟不懂Excel是一个用户庞大的数据管理软件 注:本篇代码在Python3环境下运行 首先导入两个模块xlrd和xlwt,xlrd用来读取Exc ...

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

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

  5. Python 利用Python操作excel表格之openyxl介绍Part1

    利用Python操作excel表格之openyxl介绍 by:授客 QQ:1033553122 欢迎加入全国软件测试交流qq群(群号:7156436),免费获取以下性能监控工具(类似Nmon精简版) ...

  6. python操作Excel-写/改/读

    python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库. xlrd和xlwt这两个库用之前需要安装:cmd -> pip instal ...

  7. 【转】python操作excel表格(xlrd/xlwt)

    [转]python操作excel表格(xlrd/xlwt) 最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异, ...

  8. Python 操作Excel之通过xlutils实现在保留原格式的情况下追加写入数据

    在Python操作Excel 的模块有 xlrd.xlwt.xlutils等. xlrd:读取Excel文件数据 xlwt:写入Excel 数据,缺点是Excel格式无法复用,为了方便用户,写入的话, ...

  9. python基础(六)python操作excel

    一.python操作excel,python操作excel使用xlrd.xlwt和xlutils模块,xlrd模块是读取excel的,xlwt模块是写excel的,xlutils是用来修改excel的 ...

  10. Python操作Excle

    python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库.可从这里下载https://pypi.python.org/pypi.下面分别记录p ...

随机推荐

  1. KingbaseES toast技术原理及实现

    前言 1.TOAST的作用 TOAST全称是The Oversized-Attribute Storage Technique, 超大属性存储技术,就是超长字段在数据库中的存储方式.主要用来应对物理数 ...

  2. KingbaseES PLSQL 支持语句级回滚

    KingbaseES默认如果在PLSQL-block 执行过程中的任何SQL 语句导致错误,都会导致该事务的所有语句都被回滚,而Oracle 则是语句级的回滚.KingbaseES 为了更好的与 Or ...

  3. archlinux调整分区及ext4文件系统大小

    参照 https://wiki.archlinuxcn.org/wiki/Parted 1.防止数据丢失 有重要数据的话先备份,防止系统崩了数据没了 可以的话先在虚拟机练习一下 2.注意点 修改分区的 ...

  4. 整合mybatis-spring需要的maven依赖配置

    创建maven项目,导入相关jar包 junit 1 <dependency> 2 <groupId>junit</groupId> 3 <artifactI ...

  5. #线性筛,哈希#CF1225D Power Products

    题目 给定一个长度为 \(n\) 的正整数序列 \(a\),问有多少对 \((i,j),i<j\) 使得存在一个整数 \(x\) 满足 \(a_i\times a_j=x^k\) 分析 将 \( ...

  6. #SG函数#HDU 1848 Fibonacci again and again

    题目 分析 可取状态只能是斐波那契数,求出SG函数 然后判断三个数sg函数异或和不为0先手必胜 代码 #include <cstdio> #include <cctype> # ...

  7. 使用OHOS SDK构建libjpeg-turbo

    参照OHOS IDE和SDK的安装方法配置好开发环境. 从github下载源码. 执行如下命令: git clone --depth=1 https://github.com/libjpeg-turb ...

  8. 深入理解HashMap和TreeMap的区别

    目录 简介 HashMap和TreeMap本质区别 排序区别 Null值的区别 性能区别 共同点 深入理解HashMap和TreeMap的区别 简介 HashMap和TreeMap是Map家族中非常常 ...

  9. OpenHarmony—内核对象事件之源码详解

    近年来,国内开源实现跨越式发展,并成为企业提升创新能力.生产力.协作和透明度的关键.作为 OpenAtom OpenHarmony(以下简称"OpenHarmony")开源项目共建 ...

  10. 润乾报表如何从 mongodb 中取数

    MongoDB 属于 NoSql 中的基于分布式文件存储的文档型数据库,是非关系数据库当中功能最丰富,最像关系数据库的.它支持的数据结构非常松散,是类似 json 的 bson 格式,因此可以存储比较 ...