python 调整行和列

2023-05-16

在 Excel 中,调整行和列的大小非常容易,只要点击并拖动行的边缘,或列的 头部。但如果你需要根据单元格的内容来设置行或列的大小,或者希望设置大量电 子表格文件中的行列大小,编写 Python 程序来做就要快得多。 行和列也可以完全隐藏起来。或者它们可以“冻结”,这样就总是显示在屏幕 上,如果打印该电子表格,它们就出现在每一页上(这很适合做表头)。 

设置行高和列宽 

Worksheet 对象有 row_dimensions 和column_dimensions 属性,控制行高和列宽。 在交互式环境中输入以下代码: 

>>> import openpyxl
>>> wb = openpyxl.Workbook()
>>> sheet = wb.active
>>> sheet['A1'] = 'Tall row'
>>> sheet['B2'] = 'Wide Column'
>>> sheet.row_dimensions[1].height = 70
>>> sheet.column_dimensions['B'].width = 20
>>> wb.save('dimensions.xlsx')

工作表的 row_dimensions 和 column_dimensions 是像字典一样的值,row_ dimensions 包含 RowDimension 对象,column_dimensions 包含 ColumnDimension 对象。 在row_dimensions 中,可以用行的编号来访问一个对象(在这个例子中,是 1或)。在 column_dimensions 中,可以用列的字母来访问一个对象(在这个例子中,是 A或B)。 dimensions.xlsx 电子表格如图 12-6 所示。 

一旦有了RowDimension对象,就可以设置它的高度。一旦有了ColumnDimension对 象,就可以设置它的宽度。行的高度可以设置为 0 到 409 之间的整数或浮点值。这 个值表示高度的点数。一点等于 1/72 英寸。默认的行高是 12.75。列宽可以设置为 0 到255 之间的整数或浮点数。这个值表示使用默认字体大小时(11 点),单元格可以显 示的字符数。默认的列宽是 8.43 个字符。列宽为零或行高为零,将使单元格隐藏。 

合并和拆分单元格 

利用 merge_cells()工作表方法,可以将一个矩形区域中的单元格合并为一个单 元格。在交互式环境中输入以下代码: 

>>> import openpyxl 
>>> wb = openpyxl.Workbook() 
>>> sheet = wb.active 
>>> sheet.merge_cells('A1:D3') 
>>> sheet['A1'] = 'Twelve cells merged together.' 
>>> sheet.merge_cells('C5:D5') 
>>> sheet['C5'] = 'Two merged cells.' 
>>> wb.save('merged.xlsx')

merge_cells()的参数是一个字符串,表示要合并的矩形区域左上角和右下角的 单元格:'A1:D3'将 12 个单元格合并为一个单元格。要设置这些合并后单元格的值, 只要设置这一组合并单元格左上角的单元格的值。 如果运行这段代码,merged.xlsx 看起来如图 12-7 所示。

要拆分单元格,就调用 unmerge_cells()工作表方法。在交互式环境中输入以下 代码: 

>>> import openpyxl 
>>> wb = openpyxl.load_workbook('merged.xlsx') 
>>> sheet = wb.get_active_sheet() 
>>> sheet.unmerge_cells('A1:D3')
 >>> sheet.unmerge_cells('C5:D5') 
>>> wb.save('merged.xlsx') 

如果保存变更,然后查看这个电子表格,就会看到合并的单元格恢复成一些独 立的单元格。 

冻结窗格 

对于太大而不能一屏显示的电子表格,“冻结”顶部的几行或最左边的几列,是 很有帮助的。例如,冻结的列或行表头,就算用户滚动电子表格,也是始终可见的。 这称为“冻结窗格”。在 OpenPyXL 中,每个 Worksheet 对象都有一个 freeze_panes 属性,可以设置为一个 Cell 对象或一个单元格坐标的字符串。请注意,单元格上边的所 有行和左边的所有列都会冻结,但单元格所在的行和列不会冻结。 要解冻所有的单元格,就将 freeze_panes 设置为 None 或'A1'。表 12-3 展示了 freeze_panes 设定的一些例子,以及哪些行或列会冻结。 

确保你有来自 http://nostarch.com/automatestuff/的产品销售电子表格。然后在交 互式环境中输入以下代码: 

>>> import openpyxl
>>> wb = openpyxl.load_workbook('produceSales.xlsx')
>>> sheet = wb.active
>>> sheet.freeze_panes = 'A2'
>>> wb.save('freezeExample.xlsx')

如果将 freeze_panes 属性设置为'A2',行 1 将永远可见,无论用户将电子表格滚 动到何处,如图 12-8 所示。 

图表 

openpyxl 支持利用工作表中单元格的数据,创建条形图、折线图、散点图和饼 图。要创建图表,需要做下列事情:

1.从一个矩形区域选择的单元格,创建一个 Reference 对象。

2.通过传入 Reference 对象,创建一个 Series 对象。

3.创建一个 Chart 对象。

4.将 Series 对象添加到 Chart 对象。

5.可选地设置Chart对象的drawing.top、drawing.left、drawing.width和drawing.height 变量。

6.将 Chart 对象添加到 Worksheet 对象。

Reference 对象需要一些解释。Reference对象是通过调用 openpyxl.charts. Reference() 函数并传入 3 个参数创建的:

1.包含图表数据的 Worksheet 对象。

2.两个整数的元组,代表矩形选择区域的左上角单元格,该区域包含图表数 据:元组中第一个整数是行,第二个整数是列。请注意第一行是 1,不是 0。

3.两个整数的元组,代表矩形选择区域的右下角单元格,该区域包含图表数 据:元组中第一个整数是行,第二个整数是列。 图 12-9 展示了坐标参数的一些例子。

 
 在交互式环境中输入以下代码,创建一个条形图,将它添加到电子表格中: 

>>> import openpyxl 
>>> wb = openpyxl.Workbook() 
>>> sheet = wb.get_active_sheet() 
>>> for i in range(1, 11):   # create some data in column A         
...    sheet['A' + str(i)] = i 
...
>>> refObj = openpyxl.chart.Reference(sheet, (1, 1), (10, 1)) 
>>> seriesObj = openpyxl.chart.Series(refObj, title='First series')  
>>> chartObj = openpyxl.charts.BarChart() 
>>> chartObj.append(seriesObj) 
>>> sheet.add_chart(chartObj) 
>>> wb.save('sampleChart.xlsx') 

我们可以调用 openpyxl.charts.BarChart(),创建一个条形图。也可以调用 openpyxl.charts.LineChart()、openpyxl.charts.ScatterChart()和openpyxl.charts.PieChart(),创 建折线图、散点图和饼图。 遗憾的是,在 OpenPyXL 的当前版本中(2.1.4), load_workbook()不会加载 Excel 文件中的图表。即使 Excel 文件包含图表,加载的 Workbook 对象也不会包含它们。 如果加载一个 Workbook 对象,然后马上保存到同样的.xlsx 文件名中,实际上就会 删除其中的图表。 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python 调整行和列 的相关文章

  • 翠儿。让流永远运行

    我对 tweepy python 库比较陌生 我想确保我的流 python 脚本始终在远程服务器上运行 因此 如果有人能够分享如何实现这一目标的最佳实践 那就太好了 现在我正在这样做 if name main while True try
  • 在 Python 中使用 Selenium 处理“接受 Cookie”弹出窗口

    我一直在尝试用硒抓取这个房地产网站的一些信息 但是 当我访问该网站时 我需要接受 cookie 才能继续 这仅在机器人访问网站时发生 而不是在我手动执行时发生 当我尝试通过 xpath 或 id 查找相应的元素时 正如我在手动检查页面时找到
  • 在Python3.6中调用C#代码

    由于完全不了解 C 编码 我希望在我的 python 代码中调用 C 函数 我知道有很多关于同一问题的问答 但由于一些奇怪的原因 我无法从示例 python 模块导入简单的 c 类库 以下是我所做的事情 C 类库设置 我使用的是 VS 20
  • 如何确定非阻塞套接字是否真正连接?

    这个问题不仅限于Python 这是一个一般的套接字问题 我有一个非阻塞套接字 想要连接到一台可访问的机器 在另一端 该端口不存在 为什么 select 仍然成功 我预计会超时 sock send 因管道损坏而失败 select 之后如何确定
  • 如何从 PyCharm 项目中获取我的“exe”[重复]

    这个问题在这里已经有答案了 通过 PyCharm 在 Python 上编写一些项目 我想从中获取一个exe文件 我尝试过 另存为 gt XXX exe 但是 当我尝试执行它时出现错误 此类操作系统不支持该文件 附注 我有win7 x64 它
  • Python BeautifulSoup XML 解析

    我编写了一个简单的脚本来使用 BeautifulSoup 模块解析 XML 聊天日志 标准 soup prettify 工作正常 只是聊天日志中有很多绒毛 您可以在下面看到我正在使用的脚本代码和一些 XML 输入文件 Code import
  • PIL Image.size 返回相反的宽度/高度

    使用PIL确定图像的宽度和高度 在特定图像上 幸运的是只有这一个 但这很麻烦 从 image size 返回的宽度 高度是相反的 图片 http storage googleapis com cookila 533ebf752b9d1f7c
  • Python - 用逗号分割,跳过括号内的内容

    我需要用逗号分隔字符串 但我对这种情况有一个问题 TEXT EXAMPLE THIS IS A EXAMPLE BUT NOT WORKS FOR ME SECOND THIRD 我想拆分并得到 var 0 TEXT EXAMPLE THI
  • 如果字段值在外部列表中,Django 会注释布尔值

    想象一下我有这个 Django 模型 class Letter models Model name models CharField max length 1 unique True 还有这个列表 vowels a e i o u 我想查询
  • 如何从 Dockerfile 安装 Python 3.7 和 Pip

    我正在尝试构建基于 Ubuntu 18 04 的自定义 Docker 映像 Ubuntu 预装了 Python 3 6 但我想 1 安装 Python 3 7 2 将其设置为默认 Python 版本 这样就可以使用python代替pytho
  • 如何使用 python urllib 在 HTTP/1.1 中保持活力

    现在我正在这样做 Python3 urllib url someurl headers HOST somehost Connection keep alive Accept Encoding gzip deflate opener urll
  • 无法打开 Python。错误 0xc000007b

    我最近一直在学习 Python 3 我在我的上网本 32 位 Windows 7 上创建简单的小程序没有任何问题 当我将它安装在我的上网本上时 我没有遇到任何问题 但现在我已经开始使用它了 我想将它安装在我的台式机上 并且我有一个 我的桌面
  • matplotlib matshow 标签

    我一个月前开始使用 matplotlib 所以我仍在学习 我正在尝试用 matshow 制作热图 我的代码如下 data numpy array a reshape 4 4 cax ax matshow data interpolation
  • 具有多个元素的数组的真值是二义性错误吗? Python

    from numpy import from pylab import from math import def TentMap a x if x gt 0 and x lt 0 5 return 2 a x elif x gt 0 5 a
  • 将 Pandas 列中的列表拆分为单独的列

    这是我在 pandas 数据框中的 特征 列 Feature Cricket 82379 Kabaddi 255 Reality 4751 Cricket 15640 Wildlife 730 LiveTV 13 Football 4129
  • Django 在选择列表更改时创建毫无意义的迁移

    我正在尝试使用可调用创建一个带有选择字段的模型 以便 Django 在选择列表更改时不会创建迁移 如中所述this https stackoverflow com questions 31788450 stop django from cr
  • 为什么实现 __iter__ 的对象不被识别为可迭代的?

    假设您使用包装对象 class IterOrNotIter def init self self f open tmp toto txt def getattr self item try return self getattribute
  • Python 3.2 中 **kwargs 和 dict 有什么区别?

    看起来Python的很多方面都只是功能的重复 除了我在 Python 中的 kwargs 和 dict 中看到的冗余之外 还有什么区别吗 参数解包存在差异 许多人使用kwargs 并通过dict作为论据之一 使用参数解包 Prepare f
  • 检查字符串是否只有字母和空格 - Python

    试图让 python 返回一个字符串仅包含字母和空格 string input Enter a string if all x isalpha and x isspace for x in string print Only alphabe
  • 来自 django 教程 was_published_recently.admin_order_field = 'pub_date'

    From Django 教程 https www jetbrains com help pycharm 2017 1 creating and running your first django project html d28041e21

随机推荐

  • Python 任意输入n个数,输出最大值和最小值

    定义一个标记判断是否是第一次输入 flag 61 True 给最大值和最小值赋一个初始值 max 61 min 61 1 while死循环 while 1 输入一个整数 n 61 float input 39 请输入一个数字 39 判断输入
  • WSL1安装rust报错thread ‘main‘ panicked的解决方法

    根据https www rust lang org tools install xff0c WSL安装rust使用命令 curl proto 39 61 https 39 tlsv1 2 sSf https sh rustup rs sh
  • 从远程服务器通过SSH连接WSL或WSL2

    方法一 xff08 简单方法 xff09 xff1a 参考THE EASY WAY how to SSH into Bash and WSL2 on Windows 10 from an external machine Scott Han
  • VcXsrv XLaunch 闪退 failed to bind listener 的解决方法

    在通过 VcXsrv 配置 X11 forwarding 时 xff0c 打开 XLaunch xff0c 却屡次在启动后闪退 xff0c 而 VcXsrv 主程序却能正常启动 通过 net stop winnat 取消端口排除范围后仍然闪
  • SerDes interface参考设计_CDR设计(5)

    5 CDR设计 CDR一直是比较热门的研究方向 xff0c 现在比较主流的方法有接收端输入数据和本地时钟的关系将其进行分类 常见的 CDR 拓扑结构可以分为如下的三大类 xff1a xff08 1 xff09 采用反馈相位跟踪结构 如 PL
  • Http请求中Content-Type讲解

    言 xff1a 在Http请求中 xff0c 我们每天都在使用Content type来指定不同格式的请求信息 xff0c 但是却很少有人去全面了解content type中允许的值有多少 xff0c 这里将讲解Content Type的可
  • 5分钟搭建自己的代码托管平台gitlab

    熟练的使用git和github已经成为了每个程序员必备的技能 git可以使我们更好的管理和维护自己的代码 xff0c 可以使团队成员之间以更高效的方式进行工作 xff0c github作为一个免费好用的代码托管平台 xff0c 在一定程度上
  • 【小白向】手把手教你发布自己写的HTML静态网页

    相对于C 43 43 JAVA等编程语言的复杂难学 xff0c HTML CSS JS可以说是对刚接触计算机的同学最友好的编程语言了 特别是随着主流浏览器都支持了HTML5 CSS3 xff0c 就算是新手 xff0c 只要费点心思 xff
  • 用轻量服务器搭建自己的pdf在线工具箱(支持pdf压缩以及pdf OCR)

    上篇文章中我们讲了怎么利用腾讯轻量云服务器搭建一个PDF在线压缩工具 xff0c 今天我们来搭建一个更强大的工具 xff0c 不仅支持PDF在线压缩 xff0c 还支持PDF OCR文字识别 前言 前两天需要压缩一个pdf文件 xff0c
  • 用轻量服务器搭建imgproxy来获取不同尺寸的图片

    现在很多站长都喜欢搭建一个自己的私有图床来管理图片 xff0c 使用的一般都是第三方的开源图床程序 有时候可能第三方的图床程序不能完全满足我们的需要 xff0c 比如说 xff0c 我们上传了一张图片以后 xff0c 在不同的页面下 xff
  • 在轻量服务器上使用NextList搭建OneDriver列表程序

    什么是列表程序 xff1f 我们平时都会使用各种各样的网盘程序来把我们的文件保存到互联网上 xff0c 然后在需要的时候再从网盘中下载文件 一般情况下 xff0c 浏览文件列表以及下载文件都必须先登录网盘账号 xff0c 如果我们想要把文件
  • 良心云最近活动是真多啊,一波接一波,大伙有需要的上车

    1 轻量云2核免费升配4核 直接去控制台选择248套餐升级就行 xff0c 有这个配置的可以去操作一下 xff0c 截止到这个月底 我已经升了 附上轻量控制台链接 xff1a https console cloud tencent com
  • beego打包在windows上闪退

    打包拿到其他windows机器上运行 xff0c 直接闪退无法正常运行 没办法 xff0c 在cmd下运行可执行文件 发现又以下报错 xff1a ORM 2020 09 11 14 29 12 register db Ping 96 def
  • Debian11.3配置SSH允许root用户远程登录系统

    系统版本 root 64 localhost cat etc os release PRETTY NAME 61 34 Debian GNU Linux 11 bullseye 34 NAME 61 34 Debian GNU Linux
  • Shell 脚本常用命令

    Shell 脚本的概念 将平时使用的各种Linux命令按顺序保存 xff08 堆叠 xff09 到一个文本文件中 xff0c 添加上执行权限 xff0c 就是一个Shell脚本 将要执行的命令按先后顺序保存到一个文本文件 给该文件可执行权限
  • 来,看看记事本里会变成乱码的字……不仅仅是“联通”而已……

    众所周知 xff0c 联通 这两个字直接默认保存到记事本里会出现乱码 xff0c 变成小黑块 具体原因网上解释很多 xff0c 总结起来就一句话 xff1a 联通 的内码是0xC1 1100 0001 0xAA 1010 1010 0xCD
  • Python读取Word表格数据

    import docx from docx import Document 导入库 path 61 34 E python data 1234 docx 34 文件路径 document 61 Document path 读入文件 tabl
  • Python:下载和安装Pygame

    1 下载Pygame包 注意 xff1a 根据Python版本和Windows系统的位数选择要对应版本的Pygame包 官网地址 xff1a http www pygame org download shtml 其中 xff0c 如果Pyt
  • python 编写input和output函数,输出学生信息

    题目 xff1a 编写input 和output 函数输入 xff0c 输出5个学生的数据记录 解释 xff1a 可以通过函数的方式实现 xff0c 也可以用类的方式实现 xff0c 下面举例用类的方法实现 xff1a span class
  • python 调整行和列

    在 Excel 中 xff0c 调整行和列的大小非常容易 xff0c 只要点击并拖动行的边缘 xff0c 或列的 头部 但如果你需要根据单元格的内容来设置行或列的大小 xff0c 或者希望设置大量电 子表格文件中的行列大小 xff0c 编写