目录
openpyxl创建文件Workbook() —创建 excel 文件Workbook.create_sheet() —创建 excel 工作簿Worksheet.title —给工作簿重命名ws.sheet_properties.tabColor = " " 修改标题背景Workbook.sheetname —查看 excel 所有工作簿Workbook.copy_worksheet() —创建工作表的副本获取修改数据访问一个单元格Worksheet[ ]Worksheet.cell()Worksheet.append()访问多个单元格保存文件打开文件openpyxl.load_workbook() —读取 excel 文件读取工作簿数据总结openpyxl
openpyxl模块属于第三方模块,是一个在 python 中能够处理 excel 文件的模块,还有比较出名的是xlrd、xlwt 分别控制excel文件的读写,这俩个能够兼容所有版本的文件。openpyxl 针对 excel 2003版本之前的兼容性可能不好 但是功能更加强大。
excel文件的版本及后缀
2003版本之前 excel的文件后缀是xls
2003版本之后 excel的文件后缀是xlsx、csv
【资料图】
创建文件
Workbook() —创建 excel 文件
使用 openpyxl 创建文件。只需导入Workbook类
from openpyxl import Workbook wb = Workbook() # 一个 excel 文件创建成功
Workbook.create_sheet() —创建 excel 工作簿
Workbook.create_sheet() 可以创建自定义名称的工作簿。括号里的参数是工作簿名称,还有一个参数是工作簿的位置,也可以不写
from openpyxl import Workbook wb = Workbook() ws1 = wb.create_sheet("用户信息表", 0) # 创建了一个用户信息表并放在第一位,如下图
Sheet 工作簿是自动生成的
可以创建多个工作簿,并且它们按顺序排列。
Worksheet.title —给工作簿重命名
使用 Worksheet.title属性更改表名称
from openpyxl import Workbook wb = Workbook() # 创建 excel 文件 ws1 = wb.create_sheet("用户信息表", 0) # 创建工作簿用户信息表放在第一位 ws2 = wb.create_sheet("bank_info") # 创建工作簿bank_info ws1.title = "user_info" # 更改工作簿用户信息表的名称 """用代码保存一下后,如下图所示"""
用户信息表 被改名成 user_info
ws.sheet_properties.tabColor = " " 修改标题背景
from openpyxl import Workbook wb = Workbook() ws1 = wb.create_sheet("用户信息表", 0) ws1.sheet_properties.tabColor = "FF6666" # 将标题背景改为指定RRGGBB颜色代码 """用代码保存一下后,如下图所示"""
变得更好看了…
Workbook.sheetname —查看 excel 所有工作簿
返回包含 excel 文件下所有工作簿名称的列表
from openpyxl import Workbook wb = Workbook() ws1 = wb.create_sheet("用户信息表", 0) print(wb.sheetnames) 打印结果 ["用户信息表", "Sheet"]
Workbook.copy_worksheet() —创建工作表的副本
Workbook.copy_worksheet()方法可以在单个工作簿中创建工作表的副本。 仅复制单元格(包括值、样式、超链接和注释)和某些工作表属性(包括尺寸、格式和属性)。不会复制所有其他工作簿/工作表属性 - 例如图像、图表。
获取修改数据
访问一个单元格
在 excel 中可以通过位置找到里面的内容,同样使用代码也能通过位置找到内容。
Worksheet[ ]
from openpyxl import Workbook wb = Workbook() ws1 = wb.create_sheet("用户信息表", 0) ws1["A1"] = "XWenXiang" # ws1["A1"] 代表的是该表中的 A1 位置,我们可以将数据直接赋值给它 """用代码保存一下后,如下图所示"""
此时的 A1 被填入内容 XWenXiang
Worksheet.cell()
----"除了直接获取位置还可以使用 Worksheet.cell()方法"----- from openpyxl import Workbook wb = Workbook() ws1 = wb.create_sheet("用户信息表", 0) ws1.cell(row=4, column=2, value=10) 此方法是通过指定坐标的方式赋值,其中 row 参数代表行数, column 代表列数,value 是填入的数据。 """用代码保存一下后,如下图所示"""
在第2列第4行的位置填入数字10
Worksheet.append()
Worksheet.append() 可以同时写入多个数据。
from openpyxl import Workbook wb = Workbook() ws1 = wb.create_sheet("用户信息表", 0) ws1.append(["name", "age", "gender"]) ws1.append(["XWenXiang", "15", "man"]) # 要用 [] 括起来 """用代码保存一下后,如下图所示"""
批量写入数据,重复数据还可以加一个循环写入。
公式
模块里使用的公式和 excel 中的公式是一样的
ws1["A6"] = "=sum(A4:A5)" # 对A4和A5进行求和并写入到A6
访问多个单元格
可以使用切片访问单元格范围
x = ws["A1":"C2"] x1 = ws["C"] x2 = ws["C:D"] x3 = ws[10] x4 = ws[5:10]
Worksheet.values —获取单元格值
from openpyxl import Workbook wb = Workbook() ws1 = wb.create_sheet("用户信息表", 0) ws1.append(["name", "age", "gender"]) ws1.append(["XWenXiang", "15", "man"]) for row in ws1.values: print(row) 打印结果: ("name", "age", "gender") ("XWenXiang", "15", "man")
保存文件
保存工作簿最简单、最安全的方法是使用 对象的 Workbook.save() 方法 Workbook。
在前面的代码示例都没有将保存代码加入。
wb = Workbook() wb.save("balances.xlsx") # balances.xlsx 是保存的路径,也就是文件名。 编辑完要保存才行。
打开文件
openpyxl.load_workbook() —读取 excel 文件
和 Workbook 写入一样,使用 openpyxl.load_workbook() 可以打开现有工作簿。
from openpyxl import load_workbook # 导入 load_workbook wb = load_workbook("ex_a.xlsx", read_only=True, data_only=True) # ex_a.xlsx是文件名 print(wb.sheetnames) # 打印所有工作簿的名称
读取工作簿数据
方式一 from openpyxl import load_workbook wb = load_workbook("ex_a.xlsx", read_only=True, data_only=True) ws = wb["用户信息表"] # 拿到工作薄对象 print(ws["A1"].value) # 取出工作薄对象中 A1 位置的值
方式二 from openpyxl import load_workbook wb = load_workbook("ex_a.xlsx", read_only=True, data_only=True) ws = wb["用户信息表"] print(ws.cell(row=2, column=1).value) # 通过行与列的形式来取值
方式三(逐行读取) from openpyxl import load_workbook wb = load_workbook("ex_a.xlsx", read_only=True, data_only=True) ws = wb["用户信息表"] for row in ws.rows: # 获取每一行的数据 for data in row: # 获取每一行中单元格的数据 print(data.value) # 打印单元格的值
总结
到此这篇关于Python第三方常用模块openpyxl的文章就介绍到这了,更多相关Pythonopenpyxl模块介绍内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
X 关闭
X 关闭
- 1联想拯救者Y70发布最新预告:售价2970元起 迄今最便宜的骁龙8+旗舰
- 2亚马逊开始大规模推广掌纹支付技术 顾客可使用“挥手付”结账
- 3现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 4如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 5AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 6转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 7充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 8好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 9名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?
- 10亚马逊云科技成立量子网络中心致力解决量子计算领域的挑战