openpyxl操作指南-重点属性讲解和简单实操

本文详细介绍使用Python的openpyxl库进行Excel文件的操作方法,包括创建工作簿、sheet,单元格数据的读写,行列的删除与合并,以及数据的遍历等。同时,文章还提供了如何在只读和只写模式下加载和创建Excel文件的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

"""欢迎新同学阅读,大家可以直接将下面的所有内容复制到pycharm里面运行"""

import openpyxl
from sys import stdout

"""1.创建工作簿和sheet并进行命名、排序等操作"""
wb = openpyxl.Workbook()  #创建一个未保存的.xlsx文件对象(默认有一个名为“sheet”的sheet)
ws1 = wb.active   #激活自带的sheet
wb.remove(ws1)  #删除worksheet对象,此时为对象ws1
ws2 = wb.create_sheet("cool", 0) #新建一个名为“cool”的sheet,且放在第0序列(不加索引默认放在最后位置)
ws2['A1'] = 66  #在A1单元格内写入66
ws2.append([1,2,3,4,5])  #在后面挨着的空行写入列表中的数据
ws3 = wb.create_sheet("my sheet", 1)  #新建一个名为“my sheet”的sheet,且放在第1序列(0序列后面)
ws3.title = "rename"   #将“my sheet”重新命名为“rename”
print(wb.sheetnames)  #打印工作簿中的所有sheet名
for sheet_name in wb.sheetnames:
    print(sheet_name)    #遍历所有sheet名
for sheet in wb:
    print(sheet.title)   #遍历所有sheet名
copy_sheet = wb.copy_worksheet(wb[wb.sheetnames[0]]) #复制一个名为“cool Copy”的sheet,且放在最后位置

"""2.单元格内写入、打印数据"""
ws2["A1"] = 66.345  #在A1单元格中写入66.345
print(ws2["A1"].value)   #打印“A1”中的value
ws2.cell(row=4, column=2, value="你好")  #在第4行第2列(B4)单元格中写入“你好”
wb.guess_types = False  #根据实际情况看是否开启类型推断,默认为False
n = 0
for row in range(1, 11):    #模块默认先遍历行
    for column in range(1, 6):  #每一行遍历列
        ws3.cell(row=row, column=column).value = n
        n += 1    #在1至10行和1至5列写入递增(n+1)数据
for row in ws3["A1":"D6"]:  #遍历1至6行
    for cell in row:   #遍历每行的cell
        stdout.write(str(cell.value) + " ") #打印每个cell的值(不自动换行)
    print()  #自动换行
for row in ws3.rows:  #遍历sheet对象ws3的所有行
    arr = []    #新建一个空的表,方便后面存放数据
    for cell in row:  #遍历每行的cell(返回的是生成器,需要加.value才转为数据)
        arr.append(cell.value)    #将每行的value添加到arr列表总,方便以后调用
        stdout.write(str(cell.value) + " ") #打印数据,且不换行
    print()  #每个row换一次行
for column in ws3.columns:  #遍历sheet对象ws3的所有列
    for cell in column:  #遍历每列的cell
        stdout.write(str(cell.value) + " ") #将每列转置为行打印
    print() #换行
dict1 = {3: "abc", "d": "666", 6: 888}  #键值3相当于excel中的C列,“d”为D列
wb["rename"].append(dict1)    #按照字典中对应的key值添加value值
colC = ws3["C"]  #表示C列
col_range = ws3["C:D"]  #表示C至D列
row5 = ws3[5]  #表示第5行
row_range = ws3[5:10]   #表示5至10行
print(len(wb.sheetnames))  #打印工作簿中sheet的个数
print(ws3.title)   #打印对象ws3的标题
print(ws3.max_row)   #打印最大行数
print(ws3.max_column)   #打印最大列数
ws3["A11"] = "=sum(A1:A10)"  #写入求和公式

"""3.删除行列和合并单元格"""
for row in range(1, 11):
   copy_sheet.append(range(11))  #添加数据
copy_sheet.delete_rows(1,2)  #删除index=1后面2行(从index=1开始)
copy_sheet.delete_cols(2,5)  #删除index=2后面5列(从index=2开始)

copy_sheet.insert_rows(6)    #在第6行插入一行
copy_sheet.merge_cells("A1:E1") #合并单元格,且写入A1的value
copy_sheet.unmerge_cells("A1:E1") #拆分合并后的单元格

"""4.加载文件和只读、只写模式(节约内存)"""
wb1 = openpyxl.load_workbook(r"e:\111.xlsx", read_only=True)  #加载一个excel文件并设置为只读模式
wb3 = openpyxl.Workbook(write_only=True)  #创建一个只写模式的工作簿,添加数据只能通过append()添加行,不能通过cell()添加数据
ws3_c = wb3.create_sheet()   #与普通工作簿不同,它不包含任何工作表,必须创建一个工作表

"""5.合并多个sheet数据的简单实操"""
import openpyxl
    """加载的111.xls中有多张纬度一样的sheet,需要将这些sheet数据进行合并(大家可以根据需求自己创建类似数据)"""
new_wb = openpyxl.Workbook(write_only=True)
sheet = new_wb.create_sheet("new")
wb1 = openpyxl.load_workbook(r"e:\111.xlsx", read_only=True)
ws1 = wb1.worksheets[1]
ar = []
for cell in ws1[1]:
    ar.append(cell.value)
sheet.append(ar)
for sheet1 in wb1:
    for row in sheet1[2:sheet1.max_row]:
        ar = []
        for cell in row:
            ar.append(cell.value)
        sheet.append(ar)
new_wb.save(r"e:\new.xlsx")

 

### 安装 openpyxl python-docx 的方法 在 IntelliJ IDEA 中可以通过内置的终端或者配置 Python 解释器来安装所需的库 `openpyxl` `python-docx`。 #### 方法一:通过命令行工具 pip 进行安装 IntelliJ IDEA 提供了一个集成的终端功能,可以直接运行命令完成依赖项的安装。以下是具体操作: 打开 IntelliJ IDEA 并进入项目的根目录,在顶部菜单栏找到 **View -> Tool Windows -> Terminal** 打开终端窗口[^1]。随后输入以下命令分别安装两个库: ```bash pip install openpyxl ``` 以及, ```bash pip install python-docx ``` 上述两条指令会调用系统的包管理工具 pip 来下载并安装指定版本的库文件到当前项目所使用的虚拟环境中去[^2]。 #### 方法二:利用 PyCharm/IDEA 自带设置界面手动添加外部库支持 如果更倾向于图形化界面操作,则可以按照如下路径访问相关选项卡来进行调整——依次点击 **File → Settings → Project: YourProjectName → Python Interpreter** 后会出现已加载好的解释程序列表及其关联模块详情页;在此页面上有一个加号按钮("+"),单击它之后会在弹出来的对话框里搜索目标名称如 “openpyxl” 或者 “python-docx”,选中后再按确认键即可自动执行相同效果的操作过程即引入对应的功能扩展组件至工程环境当中[^3]。 以上两种方式均能有效达成目的,用户可以根据个人习惯偏好任选其一实施部署工作流程中的额外需求部分处理任务。 ```python import openpyxl from docx import Document # Example usage of libraries after installation. wb = openpyxl.Workbook() doc = Document() print("Libraries imported successfully.") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值