首页 > 编程语言 >python使用OpenPyXl库对Excel进行操作

python使用OpenPyXl库对Excel进行操作

时间:2024-01-15 15:01:02浏览次数:42  
标签:库对 sheet OpenPyXl python Excel name cell ws wb

python使用OpenPyXl库对Excel进行操作

参考:知乎文章 / OpenPyXL教程 / 博客园

目录

1. 基本概念

在OpenPyXl中的基本改变跟Excel文件中是完全一致的。

workbook sheet cell
工作表 工作簿 单元格
相当于是一个Excel文件 每个文件都都可以包含多个表单 每个可以填写数据的小格就是单元格

2. 判断文件是否存在

判断文件是否存在的方法并没有用到OpenPyXl库,但是在实际场景中比较容易遇见,所以我也就补充在了这里。
例如,有时判断该文件是否存在,如果存在就在文件中添加新行进行数据写入,如果不存在就先创建一个Excel文件,再进行数据写入。

file_name = 'test.xlsx'
if os.path.exists(file_name):
    print("文件存在")
else:
    print("文件不存在")

3. 创建和打开Excel文件

3.1. 创建Excel文件

from openpyxl import Workbook
import os
file_name = 'test.xlsx'

wb = Workbook() # 创建一个workbook对象
ws = wb.active # 创建workbook会将第一个sheet激活,通过 wb.active获取引用
wb.save(file_name)

3.2. 打开已有的Excel文件

from openpyxl import load_workbook
import os
file_name = 'test.xlsx'

wb = load_workbook(file_name) # 无非是调用的函数存在区别
ws = wb.active 
wb.save(file_name)

4. 储存数据

我感觉这部分内容并不足以作为一个单独的标题,但是我用到了,所以单独把它拎出来写了一下。

ws['A1'] = 123.11 # 调整对应单元格的内容

ws.append([1, 2, 3]) # 在Excel表中添加新行

5. sheet操作

通过一段代码来展示sheet操作相关的功能:

  1. 创建sheet
  2. 修改sheet名称
  3. 设置sheet标签背景色
  4. 查看所有sheet的名称
  5. 获取sheet
  6. 复制sheet
  7. 删除sheet
from openpyxl import load_workbook
import os
file_name = 'test.xlsx'

wb = load_workbook(file_name) 

ws1 = wb.create_sheet("sheet") # 创建sheet,默认插在后面
ws1.title = "新表单"  # 设置sheet标题

ws2 = wb.create_sheet("mysheet", 0) # 创建一个sheet,插入到最前面 

ws2.sheet_properties.tabColor = "1072BA" # 设置sheet标签背景色

ws3 = wb.copy_worksheet(ws2) # ws3为ws2的复制

print(wb.sheetnames) # 查看该文件所有的sheet名称

ws4 = wb.get_sheet_by_name(u"新表单") # 根据名称获取sheet

wb.remove(ws1) # 删除sheet ws1

6. cell操作

  1. 单独操作
  2. 批量操作
  3. 合并单元格
from openpyxl import load_workbook
import os
file_name = 'test.xlsx'

wb = load_workbook(file_name) 
ws = wb.active

c = ws['A1'] # 通过单元格名称访问
d = ws.cell(row=4, column=2, value=10) # 通过行列坐标访问

# 操作单列
for cell in ws["A"]: 
    print(cell.value)
# 操作单行  
for cell in ws["1"]: 
    print(cell.value)
# 操作多列
for column in ws['A:C']: 
    for cell in column:
        print(cell.value)
# 操作多行
for row in ws['1:3']: 
    for cell in row:
        print(cell.value)
# 指定范围
for row in ws['A1:C3']: 
    for cell in row:
        print(cell.value)

# 所有行
for row in ws.iter_rows():
    for cell in row:
        print(cell.value)
# 所有列
for column in ws.iter_cols():
    for cell in column:
        print(cell.value)

# 合并
ws.merge_cells('A2:D2')
# 解除合并
ws.unmerge_cells('A2:D2')
# 合并
ws.merge_cells(start_row=2,start_column=1,end_row=2,end_column=4)
# 解除合并
ws.unmerge_cells(start_row=2,start_column=1,end_row=2,end_column=4)

标签:库对,sheet,OpenPyXl,python,Excel,name,cell,ws,wb
From: https://www.cnblogs.com/HoNorthNorth/p/17965359

相关文章

  • python 最长有效括号 多种解法
    使用栈:遍历字符串,当遇到左括号时,将其下标压入栈中;当遇到右括号时,如果栈为空,则将当前右括号下标作为新的起始点,否则将栈顶元素出栈,并计算当前有效括号的长度。Python代码示例:deflongest_valid_parentheses(s):stack=[-1]#栈中始终保持一个起始位置max_length=0......
  • python学习
    dic={'名字':'小明','身高':168,'体重':55}print(dic['名字']+'的身高是'+str(dic['身高'])+'cm,'+'体重是'+str(dic['体重'])+'kg.')打印字典中的整形时记得转成字符串#......
  • python测试系列教程——python+Selenium+chrome自动化测试框架
    python测试系列教程——python+Selenium+chrome自动化测试框架需要的环境浏览器(Firefox/Chrome/IE…)PythonSeleniumSeleniumIDE(如果用Firefox)FireBug、FirePath(如果用Firefox)chromedriver、IEDriverServer、phantomjs.exeIDE(Pycharm/Sublime/Eclipse…)1、浏览器建议......
  • Python和RPA网页自动化-发送邮件
    以163邮箱为例,分别使用Python和RPA网页自动化发送邮件到指定邮箱其中2个方法都需要用到163邮箱授权码,开启IMAP/SMTP服务即可得到授权码(POP3/SMTP服务不用开启) 1、python代码如下importsmtplibfromemail.mime.textimportMIMETextfromemail.headerimportHeaderdef......
  • python多线程模块:threading使用方法(参数传递)
    先来看这段代码:importthreadingimporttimedefworker():print“worker”time.sleep(1)returnforiinxrange(5):t=threading.Thread(target=worker)t.start()这段代码就使用了多线程,但是没法传递参数,而实际使用多线程,往往是需要传递参数的......
  • Python 3各版本的新特性对比
    Python3各版本的新特性对比作者:HankZheng2024-01-1500:30:04开发前端Python3系列的各个版本都带来了许多重要的新特性和改进,从语法到标准库的增强,都为开发者提供了更好的编程体验和更高效的开发方式。Python是一种简单易学、功能强大的编程语言,广泛应用于各个领域。Py......
  • Python打包exe文件方法汇总【4种】
    Python作为解释型语言,发布即公开源码,虽然是提倡开源但是有些时候就是忍不住想打包成exe,不仅仅是为了对代码进行加密,而是为了跨平台。防止有些没有安装py环境的电脑无法运行软件。目录对python代码打包成exe的方式有4种,py2exe,pyinstaller,cx_Freeze,nuitka,分别对以上4种方法介绍,欢迎......
  • 使用 Python 将数据写入 Excel 工作表
    在数据处理和报告生成等工作中,Excel表格是一种常见且广泛使用的工具。然而,手动将大量数据输入到Excel表格中既费时又容易出错。为了提高效率并减少错误,使用Python编程语言来自动化数据写入Excel表格是一个明智的选择。Python作为一种简单易学且功能强大的编程语言,其丰富的......
  • Python-ttk的标签
    1:效果图2:代码importttkbootstrapasttkfromttkbootstrap.constantsimport*root=ttk.Window()ttk.Label(root,text="标签1",bootstyle=INFO).pack(side=ttk.LEFT,padx=5,pady=10)ttk.Label(root,text="标签2",bootstyle="inverse").pack(s......
  • 怎么在python中改进lightgbm 算法
    改进LightGBM算法通常涉及一系列步骤,这取决于你的数据集、问题的特点以及已有模型的性能。以下是一些建议:数据预处理和特征工程:处理缺失值:使用适当的方法填充或删除缺失值。异常值处理:检测并处理异常值,以确保模型对数据的噪声具有鲁棒性。特征缩放:确保特征在相似的范围内,可以......