说明:本文档内容参考自 https://www.cnblogs.com/zeke-python-road/p/8986318.html (作者:关关雎鸠`)的文档
 
 from openpyxl import Workbook

 from openpyxl import load_workbook
# 实例化一个操作对象
wb = Workbook() # 获取当前活跃状态的sheet
ws = wb.active '''
# 基本操作,插入方式按顺序逐行插入
# 单元格内容控制
ws['A1'] = '姓名'
ws['B1'] = '性别'
# 在上文基础上添加整行(上文存在三行,则从第四行开始整行插入)
ws.append(['项目','姓名','时间','报价','备注'])
ws.append([1,2,3])
ws.append([23,34,45,56])
# 单元格内容控制
ws['A2'] = 'jony'
ws['A3'] = 'male'
# 文件保存(必须用绝对路径)
wb.save('/home/ht/fir.xlsx')
''' '''
# 创建新的工作区,并输入该区的标签名(标签名,位置)* 位置:该区在标签中的排序
w1 = wb.create_sheet('sheet1')
w2 = wb.create_sheet('sheet2')
w3 = wb.create_sheet('sheet3',0) # 这里是修改该区标签名
w1.title = 'sheet-1'
w2.title = 'sheet-2'
w3.title = 'sheet-3' w2.append(['ds','hp','wq']) # 设置标签的背景色(不是表格的单元格)
w2.sheet_properties.tabColor = "1072BA" # 可以通过工作区的title名来获取该sheet对象
wanna = wb.get_sheet_by_name('sheet-2') print(wanna)
print(wb.sheetnames) # <Worksheet "sheet-2">
# ['sheet-3', 'Sheet', 'sheet-1', 'sheet-2'] wb['sheet-3'].append([1,2,3,4,5]) # 复制工作区,新的工作区的默认命名为sheet-3 Copy
new_3 = wb.copy_worksheet(w3)
# 复制品重命名
new_3.title = 'new'
wb.save('/home/ht/mul_sheet.xlsx')
''' '''
sh1 = wb.active
sh2 = wb.create_sheet('sheet-cell') # 单表格坐标数值输入
sh2['A1'] = 'aaa插入内容'
# 单元格坐标接受小写
sh2['d4'] = '表格小写'
# 单元格行列值坐标输入
cell1 = sh2.cell(row=3,column=2,value='三行二列')
cell2 = sh2.cell(3,4,'三行四列')
print(cell1.value)
# 三行二列
wb.save('/home/ht/sheet-cell.xlsx')
''' '''
# 批量获取单元格
mul_cell = wb.active
mul_cell.append(['a1','b1','c1','d1'])
mul_cell.append(['a2','b2','c2','d2'])
mul_cell.append(['a3','b3','c3','d3']) # 获取A列所有单元格
print(mul_cell['a'])
# (<Cell 'Sheet'.A1>,
# <Cell 'Sheet'.A2>,
# <Cell 'Sheet'.A3>) # 获取 BCD 三列所有单元格
print(mul_cell['b:d'])
# ((<Cell 'Sheet'.B1>, <Cell 'Sheet'.B2>, <Cell 'Sheet'.B3>),
# (<Cell 'Sheet'.C1>, <Cell 'Sheet'.C2>, <Cell 'Sheet'.C3>),
# (<Cell 'Sheet'.D1>, <Cell 'Sheet'.D2>, <Cell 'Sheet'.D3>)) # 获取第 2到3 行所有单元格
print(mul_cell[2:3])
# ((<Cell 'Sheet'.A2>, <Cell 'Sheet'.B2>, <Cell 'Sheet'.C2>, <Cell 'Sheet'.D2>),
# (<Cell 'Sheet'.A3>, <Cell 'Sheet'.B3>, <Cell 'Sheet'.C3>, <Cell 'Sheet'.D3>)) # iter_rows 方法,设定参数,获取二行三列区块内的所有单元格(获取基本单位为行,再从行内获取单元格)
for r in mul_cell.iter_rows(min_row=1,max_row=2,min_col=1,max_col=3):
print(r)
for c in r:
print(c,c.value) # (<Cell 'Sheet'.A1>, <Cell 'Sheet'.B1>, <Cell 'Sheet'.C1>)
# <Cell 'Sheet'.A1> a1
# <Cell 'Sheet'.B1> b1
# <Cell 'Sheet'.C1> c1
# (<Cell 'Sheet'.A2>, <Cell 'Sheet'.B2>, <Cell 'Sheet'.C2>)
# <Cell 'Sheet'.A2> a2
# <Cell 'Sheet'.B2> b2
# <Cell 'Sheet'.C2> c2 # iter_rows 方法,设定参数,获取二行三列区块内的所有单元格(获取基本单位为列,再从列内获取单元格)
for r in mul_cell.iter_cols(min_row=1,max_row=2,min_col=1,max_col=3):
print(r) # (<Cell 'Sheet'.A1>, <Cell 'Sheet'.A2>)
# (<Cell 'Sheet'.B1>, <Cell 'Sheet'.B2>)
# (<Cell 'Sheet'.C1>, <Cell 'Sheet'.C2>) # 获取所有行
for r in mul_cell.rows:
print(r)
# (<Cell 'Sheet'.A1>, <Cell 'Sheet'.B1>, <Cell 'Sheet'.C1>, <Cell 'Sheet'.D1>)
# (<Cell 'Sheet'.A2>, <Cell 'Sheet'.B2>, <Cell 'Sheet'.C2>, <Cell 'Sheet'.D2>)
# (<Cell 'Sheet'.A3>, <Cell 'Sheet'.B3>, <Cell 'Sheet'.C3>, <Cell 'Sheet'.D3>) print(mul_cell.rows)
# <generator object Worksheet._cells_by_row at 0x7f4c615312b0> # 获取所有列
print(mul_cell.columns)
# <generator object Worksheet._cells_by_col at 0x7f4c615312b0>
wb.save('/home/ht/mul_cell.xlsx')
''' '''
from openpyxl import load_workbook # 操作文件
read_sheet = load_workbook('/home/ht/mul_sheet.xlsx') read_sheet.guess_types = True current = read_sheet.active
current['e2'] = '65%' read_sheet.save('/home/ht/mul_sheet.xlsx')
''' '''
from openpyxl import load_workbook
wsheet = load_workbook('/home/ht/mul_cell.xlsx') # sheet 对象不存在脚标,只能通过坐标获取,wsheet.active.rows[1]是不能获取第二行的!
print(wsheet.active['a'][1].value)
print(wsheet.active['2'][1].value)
# a2
# b2
''' ''' 单元格分割合并 deal_cell = load_workbook('/home/ht/sum_sheet.xlsx')
sheet = deal_cell.active # 合并第一行1到4单元格(a1,b1,c1,d1)
sheet.merge_cells('a1:d1') # 将 第一行 a1 到 d1 位置的单元格分离出来
sheet.unmerge_cells('a1:d1') # 采用区块的方式合并或分割操作
sheet.merge_cells(start_row=1,end_row=3,start_column=4,end_column=6) deal_cell.save('/home/ht/sum_sheet.xlsx')
''' ''' 单元格插入图片 # 需要安装PIL图片包
from openpyxl.drawing.image import Image img = Image('/home/ht/qcode.png')
ws.add_image(img,'F3') # 这里图片填充的位置坐标必须使用大写字母
wb.save('/home/ht/addimg.xlsx')
'''

Python excel 功能扩展库 ——> openpyxl 的基本使用的更多相关文章

  1. openresty 学习笔记番外篇:python的一些扩展库

    openresty 学习笔记番外篇:python的一些扩展库 要写一个可以使用的python程序还需要比如日志输出,读取配置文件,作为守护进程运行等 读取配置文件 使用自带的ConfigParser模 ...

  2. [Python]Excel编程示例教程(openpyxl)

    1 前言(Preface) 博文背景:论文实验中有一大堆数据集需要观测其数据特征,通过人体肉眼,难以直观感受,故而准备通过生成Excel,可视化其评测数据. We know: Excel便于可视化分析 ...

  3. Python环境——安装扩展库

    一.修改easy_install源 在操作用户家目录添加一个文件 cat >> ~/.pydistutils.cfg <<EOF [easy_install] index-ur ...

  4. 更换镜像加快python pip 安装扩展库的速度

    一些镜像源: 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/ 阿里云 http://mirrors.aliyun.com/pypi/simple/ 中国科 ...

  5. Python excel 库:Openpyxl xlrd 对比 介绍

    打算用python做一个写mtk camera driver的自动化工具. 模板选用标准库里面string -> Template 即可 但要重定义替换字符,稍后说明 配置文件纠结几天:cfg, ...

  6. 用python库openpyxl操作excel,从源excel表中提取信息复制到目标excel表中

    现代生活中,我们很难不与excel表打交道,excel表有着易学易用的优点,只是当表中数据量很大,我们又需要从其他表册中复制粘贴一些数据(比如身份证号)的时候,我们会越来越倦怠,毕竟我们不是机器,没法 ...

  7. Python Excel操作库

    xlrd:支持.xls..xlsx读 xlwt:只支持.xls写 xlutils:只支持.xls读写 依赖于xlrd和xlwt xlwings:支持.xls读,.xlsx读写 可以实现Excel和Py ...

  8. 使用C++扩展Python的功能 转自:http://blog.csdn.net/magictong/article/details/8897568#comments

    使用C++扩展Python的功能 环境 VS2005Python2.5.4 Windows7(32位) 简介 长话短说,这里说的扩展Python功能与直接用其它语言写一个动态链接库,然后让Python ...

  9. python常用三方库 - openpyxl

    目录 python常用三方库 - openpyxl 读取Excel文件 写入Excel文件 python常用三方库 - openpyxl openpyxl是一个第三方库, 可以处理xlsx格式的Exc ...

随机推荐

  1. UVA10491 - Cows and Cars(概率)

    UVA10491 - Cows and Cars(概率) 题目链接 题目大意:给你n个门后面藏着牛.m个门后面藏着车,然后再给你k个提示.在你作出选择后告诉你有多少个门后面是有牛的,如今问你作出决定后 ...

  2. 具体解释C++引用——带你走进引用的世界

     一.介绍引用 首先说引用是什么,大家能够记住,引用就是一个别名,比方小王有个绰号叫小狗.他的妈妈喊小狗回家吃饭.那就是在喊小王回家吃饭. 接下来我们用两行代码来声明一个引用(就拿小王和小狗来说吧 ...

  3. 【转】Android ClearEditText:输入用户名、密码错误时整体删除及输入为空时候晃动提示

    1 package com.lixu.clearedittext; 2 3 4 import android.app.Activity; 5 import android.os.Bundle; 6 i ...

  4. Golang 在 Mac、Linux、Windows 下交叉编译

    Golang 支持在一个平台下生成另一个平台可执行程序的交叉编译功能. Mac下编译Linux, Windows平台的64位可执行程序: CGO_ENABLED= GOOS=linux GOARCH= ...

  5. 【基础篇】Android中获取Drawable的方法

    public static Drawable getDrawable(Context context,String filename) { BitmapDrawable drawable=null; ...

  6. PostgreSQL Replication之第八章 与pgbouncer一起工作(2)

    8.2 安装pgbouncer 在我们深入细节之前,我们将看看如何安装pgbouncer.正如PostgreSQL一样,您可以采取两种途径.您可以安装二进制包或者直接从源代码编译.在我们的例子中,我们 ...

  7. ES6中的let、contst

    一 let 1.let 局部变量 不会变量提升,在运用时候要先声明在调用,var 全局变量 会产生变量提升: 2.在块级作用域中纯在let const,他所生命的变量就绑定在这个区域,未经过声明调用会 ...

  8. [JSOI2008]火星人 hash+splay

    题目描述: 现在,火星人定义了一个函数 LCQ(x, y)LCQ(x,y),表示:该字符串中第 xx 个字符开始的字串,与该字符串中第 yy 个字符开始的字串,两个字串的公共前缀的长度.比方说,LCQ ...

  9. shell中处理用户输入

    1.使用命令行参数 在shell执行的时候命令行中输入的所有参数可以赋值给一些特殊变量,这些变量成为位置变量参数. 包括: $0返回脚本名称.$1为第一个参数.$2为第二个参数 ...$9第九个参数 ...

  10. 【BZOJ 1047】[HAOI2007]理想的正方形

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 二维的ST表. 每个大的正方形可以由4个小的正方形组成. 然后区域内的最大值最小值.也可以由4个小的张方形部分全部覆盖到. [代码] ...