- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章python使用openpyxl库读写Excel表格的方法(增删改查操作)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
嗨,大家好,我是新发。 最近需要做个小工具,可以通过python来读写Excel,实现增删改查操作。以前用的是xlrd和xlwt这两个python库,今天我要讲的是openpyxl库,我觉得openpyxl比xlrd和xlwt更强大更好用,话不多说,开始吧.
可以直接通过命令行安装 。
pip install openpyxl
如果你是内网环境,则可以先在外网下载openpyxl库然后转到内网再安装。 openpyxl下载地址:https://pypi.org/project/openpyxl/#files 。
不过如果你下载了openpyxl,因为openpyxl还依赖了et_xmlfile库,所以你还得下载个et_xmlfile.
如果是用命令行pip install openpyxl,则会自动下载依赖.
et_xmlfile下载地址:https://pypi.org/project/et-xmlfile/#files 。
安装完毕后,在python中执行import openpyxl如果没有报错,则说明安装成功了.
1、创建Excel文件 。
演示代码:
import openpyxlbook = openpyxl.Workbook()book.save(u"我的表格.xlsx")
运行效果如下,生成了一个excel表格.
2、加载已存在的Excel文件 。
上面已经创建了一个表格,我们可以直接加载它。 演示代码:
import openpyxlbook = openpyxl.load_workbook(u"我的表格.xlsx")# ... book.close()
3、创建sheet 。
演示代码:
import openpyxlbook = openpyxl.load_workbook(u"我的表格.xlsx")sheet = book.create_sheet("我的Sheet")book.save(u"我的表格.xlsx")book.close()
运行效果如下:
4、判断某个sheet是否存在 。
演示代码:
import openpyxlbook = openpyxl.load_workbook(u"我的表格.xlsx")if None != book[u"我的Sheet"]: print("我的Sheet 存在")book.close()
运行结果:
我的Sheet 存在 。
5、遍历所有Sheet的名称 。
演示代码:
import openpyxlbook = openpyxl.load_workbook(u"我的表格.xlsx")for sheet_name in book.sheetnames: print(sheet_name)book.close()
运行结果:
Sheet 我的Sheet 。
6、写入单元格 。
演示代码:
import openpyxlbook = openpyxl.load_workbook(u"我的表格.xlsx")sheet = book["Sheet"]sheet.cell(1,1).value = "name"sheet.cell(2,1).value = "姓名"sheet.cell(3,1).value = "林新发"book.save(u"我的表格.xlsx")book.close()
运行效果 。
7、获取单元格的各个属性值 。
为了演示,我在我名字那里加个批注:
演示代码:
import openpyxlbook = openpyxl.load_workbook(u"我的表格.xlsx")sheet = book["Sheet"]cell = sheet.cell(3,1)# 获取单元格的值print("value:%s"%cell.value)# 获取行号、列号print("row: %d, col: %d"%(cell.row, cell.column))# 获取列名print("column_letter: %s"%cell.column_letter)# 单元格的坐标print("coordinate: %s"%cell.coordinate)# 单元格数据格式,n: 数字,s:字符串,d: 日期print("data_type: %s"%cell.data_type)# 单元格编码格式print("encoding: %s"%cell.encoding)# 单元格样式print("style: %s"%cell.style)# 单元格批注print("comment: %s"%cell.comment)book.close()
运行结果:
value:林新发 row: 3, col: 1 column_letter: A coordinate: A3 data_type: s encoding: utf-8 style: 常规 comment: Comment: linxinfa: 多才多艺 by linxinfa 。
8、遍历单元格 。
为了演示,我加多一写数据:
一行一行遍历,演示代码:
import openpyxlbook = openpyxl.load_workbook(u"我的表格.xlsx")sheet = book["Sheet"]# 一行一行遍历for one_row in sheet.rows: for cell in one_row: print(cell, cell.value)book.close()
运行结果:
<Cell "Sheet".A1> name <Cell "Sheet".B1> profession <Cell "Sheet".C1> hobby <Cell "Sheet".A2> 姓名 <Cell "Sheet".B2> 职业 <Cell "Sheet".C2> 爱好 <Cell "Sheet".A3> 林新发 <Cell "Sheet".B3> Unity3D游戏开发工程师 <Cell "Sheet".C3> 吉他、钢琴、画画、猫猫、写博客 。
一列一列遍历,演示代码:
import openpyxlbook = openpyxl.load_workbook(u"我的表格.xlsx")sheet = book["Sheet"]# 一列一列遍历for one_col in sheet.columns: for cell in one_col: print(cell, cell.value)book.close()
运行结果:
<Cell "Sheet".A1> name <Cell "Sheet".A2> 姓名 <Cell "Sheet".A3> 林新发 <Cell "Sheet".B1> profession <Cell "Sheet".B2> 职业 <Cell "Sheet".B3> Unity3D游戏开发工程师 <Cell "Sheet".C1> hobby <Cell "Sheet".C2> 爱好 <Cell "Sheet".C3> 吉他、钢琴、画画、猫猫、写博客 。
9、最大行最大列 。
为了演示,再加点数据.
import openpyxlbook = openpyxl.load_workbook(u"我的表格.xlsx")sheet = book["Sheet"]print("max_row: %d, max_column: %d"%(sheet.max_row, sheet.max_column))book.close()
运行结果:
max_row: 4, max_column: 3 。
10、删除行或列 。
为了演示,我再加多写数据.
演示代码:
import openpyxlbook = openpyxl.load_workbook(u"我的表格.xlsx")sheet = book["Sheet"]# 删除第5行sheet.delete_rows(5)# 删除第4列sheet.delete_cols(4)book.save(u"我的表格.xlsx")book.close()
运行效果:
11、设置字体 。
演示代码:
import openpyxlfrom openpyxl.styles import Fontbook = openpyxl.load_workbook(u"我的表格.xlsx")sheet = book["Sheet"]cell = sheet.cell(4,1)cell.font = Font(name="微软雅黑",size=18,color="00FFCC99",b=True,i=False)book.save(u"我的表格.xlsx")book.close()
运行效果:
12、填充单元格颜色 。
填充颜色之前 。
演示代码:
import openpyxlfrom openpyxl.styles import PatternFillbook = openpyxl.load_workbook(u"我的表格.xlsx")sheet = book["Sheet"]cell = sheet.cell(4,2)# 设置填充色cell.fill = PatternFill("solid",fgColor="FFBB00")book.save(u"我的表格.xlsx")book.close()
运行效果:
13、设置行高与列宽 。
为了演示,我先把行高和列宽改成这样:
演示代码:
import openpyxlfrom openpyxl.utils import get_column_letterbook = openpyxl.load_workbook(u"我的表格.xlsx")sheet = book["Sheet"]# 取第4行row_4 = sheet.row_dimensions[4]# 设置行高row_4.height = 15# 取第2列col_2 = sheet.column_dimensions[get_column_letter(2)]# 设置列宽col_2.width = 40book.save(u"我的表格.xlsx")book.close()
执行效果:
注意,上面我用到了一个get_column_letter方法,因为column_dimensions需要的是字母参数,所以我们不能直接传2,通过get_column_letter(2)即可得到"B",也就是第2列。 如果要反过来,通过字母逆算出数字,则用column_index_from_string方法,例:
from openpyxl.utils import column_index_from_stringprint(column_index_from_string("B"))# 输出2
完毕。 博主是Unity3D游戏工程师,喜欢Unity的同学,不要忘记点击关注,如果有什么Unity相关的技术难题,也欢迎留言或私信~ 。
到此这篇关于python使用openpyxl库读写Excel表格的方法(增删改查操作)的文章就介绍到这了,更多相关python读写Excel表格内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。
原文链接:https://blog.csdn.net/linxinfa/article/details/116309278 。
最后此篇关于python使用openpyxl库读写Excel表格的方法(增删改查操作)的文章就讲到这里了,如果你想了解更多关于python使用openpyxl库读写Excel表格的方法(增删改查操作)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我在网上搜索但没有找到任何合适的文章解释如何使用 javascript 使用 WCF 服务,尤其是 WebScriptEndpoint。 任何人都可以对此给出任何指导吗? 谢谢 最佳答案 这是一篇关于
我正在编写一个将运行 Linux 命令的 C 程序,例如: cat/etc/passwd | grep 列表 |剪切-c 1-5 我没有任何结果 *这里 parent 等待第一个 child (chi
所以我正在尝试处理文件上传,然后将该文件作为二进制文件存储到数据库中。在我存储它之后,我尝试在给定的 URL 上提供文件。我似乎找不到适合这里的方法。我需要使用数据库,因为我使用 Google 应用引
我正在尝试制作一个宏,将下面的公式添加到单元格中,然后将其拖到整个列中并在 H 列中复制相同的公式 我想在 F 和 H 列中输入公式的数据 Range("F1").formula = "=IF(ISE
问题类似于this one ,但我想使用 OperatorPrecedenceParser 解析带有函数应用程序的表达式在 FParsec . 这是我的 AST: type Expression =
我想通过使用 sequelize 和 node.js 将这个查询更改为代码取决于在哪里 select COUNT(gender) as genderCount from customers where
我正在使用GNU bash,版本5.0.3(1)-发行版(x86_64-pc-linux-gnu),我想知道为什么简单的赋值语句会出现语法错误: #/bin/bash var1=/tmp
这里,为什么我的代码在 IE 中不起作用。我的代码适用于所有浏览器。没有问题。但是当我在 IE 上运行我的项目时,它发现错误。 而且我的 jquery 类和 insertadjacentHTMl 也不
我正在尝试更改标签的innerHTML。我无权访问该表单,因此无法编辑 HTML。标签具有的唯一标识符是“for”属性。 这是输入和标签的结构:
我有一个页面,我可以在其中返回用户帖子,可以使用一些 jquery 代码对这些帖子进行即时评论,在发布新评论后,我在帖子下插入新评论以及删除 按钮。问题是 Delete 按钮在新插入的元素上不起作用,
我有一个大约有 20 列的“管道分隔”文件。我只想使用 sha1sum 散列第一列,它是一个数字,如帐号,并按原样返回其余列。 使用 awk 或 sed 执行此操作的最佳方法是什么? Accounti
我需要将以下内容插入到我的表中...我的用户表有五列 id、用户名、密码、名称、条目。 (我还没有提交任何东西到条目中,我稍后会使用 php 来做)但由于某种原因我不断收到这个错误:#1054 - U
所以我试图有一个输入字段,我可以在其中输入任何字符,但然后将输入的值小写,删除任何非字母数字字符,留下“。”而不是空格。 例如,如果我输入: 地球的 70% 是水,-!*#$^^ & 30% 土地 输
我正在尝试做一些我认为非常简单的事情,但出于某种原因我没有得到想要的结果?我是 javascript 的新手,但对 java 有经验,所以我相信我没有使用某种正确的规则。 这是一个获取输入值、检查选择
我想使用 angularjs 从 mysql 数据库加载数据。 这就是应用程序的工作原理;用户登录,他们的用户名存储在 cookie 中。该用户名显示在主页上 我想获取这个值并通过 angularjs
我正在使用 autoLayout,我想在 UITableViewCell 上放置一个 UIlabel,它应该始终位于单元格的右侧和右侧的中心。 这就是我想要实现的目标 所以在这里你可以看到我正在谈论的
我需要与 MySql 等效的 elasticsearch 查询。我的 sql 查询: SELECT DISTINCT t.product_id AS id FROM tbl_sup_price t
我正在实现代码以使用 JSON。 func setup() { if let flickrURL = NSURL(string: "https://api.flickr.com/
我尝试使用for循环声明变量,然后测试cols和rols是否相同。如果是,它将运行递归函数。但是,我在 javascript 中执行 do 时遇到问题。有人可以帮忙吗? 现在,在比较 col.1 和
我举了一个我正在处理的问题的简短示例。 HTML代码: 1 2 3 CSS 代码: .BB a:hover{ color: #000; } .BB > li:after {
我是一名优秀的程序员,十分优秀!