openpyxl超详细笔记

本文详细介绍了如何使用openpyxl库进行Excel文件的读写操作,包括创建和加载工作簿、操作单元格、设置样式、数据转换、删除行列、合并单元格等功能,并提供了丰富的代码示例。
摘要由CSDN通过智能技术生成


前言

本文的内容都是用jupyter notebook执行的。

以下是本篇文章正文内容

引入库

from openpyxl import Workbook,load_workbook
from openpyxl.styles import *


import warnings
warnings.filterwarnings('ignore')

基本操作

创建新的工作薄
wb1 = Workbook()
加载已存在的工作簿
wb = load_workbook('./000.xlsx')
# openpyxl只能处理 .xlsx 合适的表格
创建新的工作表
ws1 = wb.create_sheet('111')
当前工作表
ws2 = wb.active
ws2.title

‘000’

指定工作表
ws = wb['000']
已存在的全部工作簿
wb.sheetnames

[‘000’, ‘111’]

选择单个单元格
ws['A1']

<Cell ‘000’.A1>

ws.cell(1,1)    # 先行后列,都是索引下标

<Cell ‘000’.A1>

单元格属性
cell = ws['A1']

1 .单元格列索引

cell.col_idx

1

cell.column

1

  1. 单元格行索引
cell.row

1

  1. 单元格列名
cell.column_letter

‘A’

  1. 单元格的坐标
cell.coordinate

‘A1’

  1. 单元格数字类型

默认是n 数值

s 字符串

d 日期时间

cell.data_type

‘n’

  1. 单元格编码格式,默认 utf-8
cell.encoding

‘utf-8’

  1. 是否有样式
cell.has_style   # 默认样式是 Normal,如果是默认样式,返回False

False

  1. 单元格样式
cell.style

‘Normal’

  1. 单元格样式id
cell.style_id

0

单元格的样式属性

属性样式会在后面设置中详细演示,此处只做查询

cell.font

<openpyxl.styles.fonts.Font object>
Parameters:
name=‘Calibri’, charset=None, family=2.0, b=False, i=False, strike=None, outline=None, shadow=None, condense=None, color=<openpyxl.styles.colors.Color object>
Parameters:
rgb=None, indexed=None, auto=None, theme=1, tint=0.0, type=‘theme’, extend=None, sz=11.0, u=None, vertAlign=None, scheme=‘minor’

cell.alignment

<openpyxl.styles.alignment.Alignment object>
Parameters:
horizontal=None, vertical=None, textRotation=0, wrapText=None, shrinkToFit=None, indent=0.0, relativeIndent=0.0, justifyLastLine=None, readingOrder=0.0

cell.border

<openpyxl.styles.borders.Border object>
Parameters:
outline=True, diagonalUp=False, diagonalDown=False, start=None, end=None, left=<openpyxl.styles.borders.Side object>
Parameters:
style=None, color=None, right=<openpyxl.styles.borders.Side object>
Parameters:
style=None, color=None, top=<openpyxl.styles.borders.Side object>
Parameters:
style=None, color=None, bottom=<openpyxl.styles.borders.Side object>
Parameters:
style=None, color=None, diagonal=<openpyxl.styles.borders.Side object>
Parameters:
style=None, color=None, vertical=None, horizontal=None

cell.fill

<openpyxl.styles.fills.PatternFill object>
Parameters:
patternType=None, fgColor=<openpyxl.styles.colors.Color object>
Parameters:
rgb=‘00000000’, indexed=None, auto=None, theme=None, tint=0.0, type=‘rgb’, bgColor=<openpyxl.styles.colors.Color object>
Parameters:
rgb=‘00000000’, indexed=None, auto=None, theme=None, tint=0.0, type=‘rgb’

cell.number_format

‘General’

cell.hyperlink
单元格的值
ws['A1'].value
选择单元格
  • 选择一行或者一列

一列 字符串

ws['A']

(<Cell ‘000’.A1>,
<Cell ‘000’.A2>,
<Cell ‘000’.A3>,
<Cell ‘000’.A4>,
<Cell ‘000’.A5>,
<Cell ‘000’.A6>,
<Cell ‘000’.A7>,
<Cell ‘000’.A8>,
<Cell ‘000’.A9>,
<Cell ‘000’.A10>,
<Cell ‘000’.A11>)

一行,数字

ws[1]

(<Cell ‘000’.A1>, <Cell ‘000’.B1>, <Cell ‘000’.C1>, <Cell ‘000’.D1>)

  • 多行
ws['A:B']

((<Cell ‘000’.A1>,
<Cell ‘000’.A2>,
<Cell ‘000’.A3>,
<Cell ‘000’.A4>,
<Cell ‘000’.A5>,
<Cell ‘000’.A6>,
<Cell ‘000’.A7>,
<Cell ‘000’.A8>,
<Cell ‘000’.A9>,
<Cell ‘000’.A10>,
<Cell ‘000’.A11>),
(<Cell ‘000’.B1>,
<Cell ‘000’.B2>,
<Cell ‘000’.B3>,
<Cell ‘000’.B4>,
<Cell ‘000’.B5>,
<Cell ‘000’.B6>,
<Cell ‘000’.B7>,
<Cell ‘000’.B8>,
<Cell ‘000’.B9>,
<Cell ‘000’.B10>,
<Cell ‘000’.B11>))

多行

ws[5:10]

((<Cell ‘000’.A5>, <Cell ‘000’.B5>, <Cell ‘000’.C5>, <Cell ‘000’.D5>),
(<Cell ‘000’.A6>, <Cell ‘000’.B6>, <Cell ‘000’.C6>, <Cell ‘000’.D6>),
(<Cell ‘000’.A7>, <Cell ‘000’.B7>, <Cell ‘000’.C7>, <Cell ‘000’.D7>),
(<Cell ‘000’.A8>, <Cell ‘000’.B8>, <Cell ‘000’.C8>, <Cell ‘000’.D8>),
(<Cell ‘000’.A9>, <Cell ‘000’.B9>, <Cell ‘000’.C9>, <Cell ‘000’.D9>),
(<Cell ‘000’.A10>, <Cell ‘000’.B10>, <Cell ‘000’.C10>, <Cell ‘000’.D10>))

  • 指定区域单元格
ws['A3:B9']

((<Cell ‘000’.A3>, <Cell ‘000’.B3>),
(<Cell ‘000’.A4>, <Cell ‘000’.B4>),
(<Cell ‘000’.A5>, <Cell ‘000’.B5>),
(<Cell ‘000’.A6>, <Cell ‘000’.B6>),
(<Cell ‘000’.A7>, <Cell ‘000’.B7>),
(<Cell ‘000’.A8>, <Cell ‘000’.B8>),
(<Cell ‘000’.A9>, <Cell ‘000’.B9>))

单元格赋值
ws['A1'] = 20
ws.cell(2,2).value

‘陈桂荣’

当使用cell() 时,只能给value属性赋值

# ws.cell(2,2) = 20
# 会报错
ws.cell(2,2).value = 30

增加一行

ws.append([1,2,3])
单元格遍历

ws.values 返回的是生成器,是将一行数据作为一个元组单元组成的,是由值组成的

ws.values 获取的内容是从 “A1” 到 “最大行最大列”

ws.values

<generator object values at 0x00000297EAB07F68>

for i in ws.values:
    print(i)

(20, ‘NAME’, ‘DATE_TIME’, ‘PAY’)
(0, 30, datetime.datetime(1972, 2, 23, 3, 10, 2), 8803)
(1, ‘黄瑞’, datetime.datetime(1977, 11, 29, 4, 49, 16), 5951)
(2, ‘李阳’, datetime.datetime(1982, 8, 30, 18, 12, 46), 7418)
(3, ‘石淑英’, datetime.datetime(2016, 4, 18, 11, 24, 17), 737)
(4, ‘陈红霞’, datetime.datetime(2011, 12, 12, 3, 12, 47, 1), 3555)
(5, ‘廖健’, datetime.datetime(1989, 9, 25, 20, 9, 45, 1), 2649)
(6, ‘韩雪梅’, datetime.datetime(2002, 1, 2, 8, 0, 51), 7344)
(7, ‘赵丽丽’, datetime.datetime(2018, 7, 1, 19, 35, 24), 8735)
(8, ‘侯建华’, datetime.datetime(1971, 8, 1, 16, 59, 1), 6148)
(9, ‘谭桂花’, datetime.datetime(2000, 4, 7, 5, 2, 38), 8900)
(1, 2, 3, None)

for i in ws.iter_rows(min_col=1,max_col=3,min_row=1,max_row=10):
    print(i)

(<Cell ‘000’.A1>, <Cell ‘000’.B1>, <Cell ‘000’.C1>)
(<Cell ‘000’.A2>, <Cell ‘000’.B2>, <Cell ‘000’.C2>)
(<Cell ‘000’.A3>, <Cell ‘000’.B3>, <Cell ‘000’.C3>)
(<Cell ‘000’.A4>, <Cell ‘000’.B4>, <Cell ‘000’.C4>)
(<Cell ‘000’

### 回答1: 《MySQL DBA运维笔记详细》是一本专门介绍MySQL数据库管理员运维工作的详细笔记。MySQL是一种流行的开源数据库管理系统,许多企业和网站都在使用它来存储和管理数据。 这本笔记以MySQL数据库的运维工作为核心,内容较为全面。它从基础知识开始,介绍了数据库的安装和配置,包括数据库实例、表空间、数据文件等的管理。同时,它还涉及到了数据库的备份和恢复策略,如何设计高可用的数据库架构,以及如何进行性能优化等。这些内容对于MySQL数据库管理员来说,是非常重要的。 除了基础的运维工作外,这本笔记还介绍了一些高级的技术和工具。例如,它详细解释了如何进行数据库的监控和诊断,如何进行慢查询分析以及如何优化SQL语句。此外,它还介绍了一些与MySQL数据库相关的常用工具,并提供了一些实战案例,帮助读者更好地理解和应用知识。 总体而言,这本《MySQL DBA运维笔记详细》是一本适合MySQL数据库管理员的实用手册。通过阅读这本书,读者可以系统地学习MySQL数据库的运维知识,提高自己的技术水平。无论是刚刚接触MySQL数据库的新手,还是已经有一定经验的运维人员,都可以从中受益匪浅。 ### 回答2: "Mysqldba运维笔记详细pdf"是一本关于MySQL数据库管理员运维笔记详细电子书。该电子书的主要内容涵盖了MySQL数据库的各个方面,提供了大量的技术细节和操作指南。 首先,该电子书介绍了MySQL的基础知识,包括数据库的概念、常用的SQL语法以及数据类型等。这为初学者提供了一个良好的入门点,让他们快速掌握MySQL的基本操作。 接着,该电子书深入讨论了MySQL数据库的架构和原理,包括存储引擎、查询优化、事务处理和并发控制等相关内容。这对于高级用户和数据库管理员来说是非常有价值的,可以帮助他们更好地理解MySQL的内部工作原理,从而优化数据库的性能和稳定性。 此外,该电子书还详细介绍了MySQL数据库的备份和恢复策略,包括物理备份和逻辑备份的方法。它提供了一些实用的技巧和建议,帮助用户确保数据库的安全性和可靠性。 除了基础知识和高级技巧,该电子书还涵盖了一些常见问题和故障排除的方法。它列出了一系列常见的错误和异常情况,并提供了解决方案和调试指南,使用户能够快速识别和解决问题。 总之,"Mysqldba运维笔记详细pdf"是一本全面而详细的MySQL数据库管理员运维指南。它适用于初学者和有经验的用户,提供了从基础知识到高级技巧的全方位指导,是学习和实践MySQL数据库管理的必备资料。 ### 回答3: "Mysqldba运维笔记详细"是一本提供了关于MySQL数据库管理员运维方面详尽知识的PDF。这本书包含了丰富的内容,从基本的MySQL概念开始,涵盖了各种常见问题的解决方案和最佳实践。 这本书首先介绍了MySQL数据库的概念和基本原理,包括数据库架构、存储引擎、事务处理等。然后,它详细讲解了如何安装和配置MySQL数据库,包括安装步骤、配置文件的修改以及相关工具的安装和使用。 接下来,这本书通过实用的案例和示例来介绍如何进行数据库管理和维护。它讲解了数据库备份和恢复的方法,包括全量备份和增量备份的技巧。此外,它还详细介绍了如何进行数据库监控和性能调优,包括查看数据库日志、优化SQL查询和调整系统参数等。 除了基本的运维知识,这本书还介绍了一些高级主题。它讲解了如何配置MySQL高可用性方案,包括主从复制和主备切换。它还介绍了如何进行数据库的故障诊断和排除,包括常见问题的解决方法和故障恢复策略。 总的来说,"Mysqldba运维笔记详细"这本PDF提供了一个全面而详细的MySQL数据库管理员运维指南。无论是初学者还是有经验的专业人士,都可以从中学习到宝贵的知识和实践经验。它是一本对于那些想要更好地理解和管理MySQL数据库的读者来说必不可少的参考资料。
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值