iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python3.5操作office Ex
  • 379
分享到

python3.5操作office Ex

操作office 2023-01-31 02:01:35 379人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

#第二篇:##openpyxl Write a workbook: from openpyxl import Workbook from openpyxl.compat import range from openpyxl.utils im

#第二篇:
##openpyxl

Write a workbook:

from openpyxl import Workbook
from openpyxl.compat import range
from openpyxl.utils import get_column_letter

wb = Workbook()

dest_filename = 'testexcel.xlsx'

ws1 = wb.active
ws1.title = "range names"

for row in range(1,40):
ws1.append(range(600))

ws2 = wb.create_sheet(title="Pi")

ws2['F5'] = 3.14

ws3 = wb.create_sheet(title="Data")
for row in range(10,20):
    for col in range(27,54):
      _ = ws3.cell(column=col,row=row,value="{0}".fORMat(get_column_letter(col)))

print(ws3['AA10'].value)

wb.save(filename = dest_filename)

Read an existing workbook:

from openpyxl import load_workbook
wb = load_workbook(filename='testexcel.xlsx')
sheet_ranges = wb['range names']
print(sheet_ranges['D18'].value)

在load_workbook中可使用:
在读取单元格时,guess_types将启用或禁用(默认)类型推断。

data_only控制具有公式的单元格是具有公式(默认)还是上次Excel读取工作表时存储的值。

keep_vba控制是否保留任何Visual Basic元素(默认)。如果他们被保留,他们仍然是不可编辑的。

警告:
openpyxl当前不会读取Excel文件中的所有可能项目,因此如果打开并保存相同名称,图像和图表将从现有文件中丢失。

###使用数字格式(Using number formats):

import datetime
from openpyxl import Workbook

wb = Workbook()
ws = wb.active

ws['A1'] = datetime.datetime(2018,6,8)

print(ws['A1'].number_format)

wb.guess_types = True

ws['B1'] = '3.14%'
wb.guess_types = False

print(ws['B1'].value)
print(ws['B1'].number_format)

###使用公式(Using formulae):

from openpyxl import Workbook

wb = Workbook()
ws = wb.active

ws["A1"] = "=SUM(1,1)"
wb.save("formula.xlsx")

openpyxl从不评估公式,但可以检查公式的名称:

from openpyxl.utils import FORMULAE
print("HEX2DEC" in FORMULAE)

注意:
如果要使用未知的公式,这些公式必须以_xlfn作为前缀。

###合并/取消合并单元格
(Merge / Unmerge cells)

合并单元格时,将从工作表中删除左上角的所有单元格。
格式化合并单元格的信息,参看样式合并单元格。

合并单元格:

from openpyxl.workbook import Workbook

wb = Workbook()
ws = wb.active

ws.merge_cells('A2:D2')
#A2:D2合并单元格
ws.merge_cells(start_row=2,start_column=1,end_row=4,end_column=4)
wb.save('table\\merge.xlsx')

取消合并单元格:

from openpyxl.workbook import Workbook

wb = Workbook()
ws = wb.active

ws.merge_cells('A2:D2')
#
ws.unmerge_cells('A2:D2')

ws.merge_cells(start_row=2,start_column=1,end_row=4,end_column=4)

ws.unmerge_cells(start_row=2,start_column=1,end_row=4,end_column=4)

wb.save('table\\merge.xlsx')

###插入图像(Inserting an image)
from openpyxl import Workbook
from openpyxl.drawing.image import Image

wb = Workbook()
ws = wb.active
ws['A1'] = 'learning for me happy'

img = Image('images.PNG')

ws.add_image(img,'A1')
wb.save('image.xlsx')

###Fold columns(outline)折叠列(大纲)

import openpyxl
wb = openpyxl.Workbook()
ws = wb.create_sheet()
ws.column_dimensions.group('A','D',hidden=True)
wb.save('table\\group.xlsx')

###格式化单元格
使用样式(Working with styles):
介绍(Introduction)

样式用于在屏幕上显示时更改数据的外观。它们也用于确定数字的格式。

样式可以应用于以下几个方面:

字体设置字体大小,颜色,下划线等。 填充以设置图案或颜色渐变 边框在单元格上设置边框,单元格对齐保护。
以下是默认值:请参考:
://openpyxl.readthedocs.io/en/2.5/styles.html#styling-merged-cells

from openpyxl.styles import PatternFill,Border,Side,Alignment,Protection

font = Font(name='Calibri',
size=11,
bold=False,
italic=False,
vertAlign=None,
underline='none',
strike=False,
color='FF000000',
)

fill = PatternFill(fill_type=None,
   start_color='FFFFFFFF',
   end_color='FF000000')
border = Border(left=Side(border_style=None,
  color='FF000000'),
right=Side(border_style=None,
  color='FF000000'),
top=Side(border_style=None,
 color='FF000000'),
bottom = Side(border_style=None,
  color='FF000000'),
diaGonal=Side(border_style=None,
  color='FF000000'),
diagonal_direction=0,
outline=Side(border_style=None,
 color='FF000000'),
vertical=Side(border_style=None,
  color='FF000000'),
horizontal=Side(border_style=None,
color='FF000000')
)

alignment = Alignment(horizontal='general',
  vertical='bottom',
  text_rotation=0,
  wrap_text=False,
  shrink_to_fit=False,
  indent=0)

number_format = 'General'
protection = Protection(locked=True,hidden=False)

###单元格样式和命名样式(Cell Styles and Named Styles):

有两种类型的样式:单元格样式和命名样式,也称为样式模板。

####Cell Styles
单元格样式在对象之间共享,一旦它们被分配,它们就不能被改变。这样可以防止不必要的副作用,例如改变大量单元格的样式,而不是只改变一个样式。

from openpyxl.styles import colors
from openpyxl.styles import Font,Color
from openpyxl import Workbook

wb = Workbook()
ws = wb.active

a1 = ws['A1']
d4 = ws['D4']
ft = Font(color=colors.RED)

a1 = ws['A1']
d4 = ws['D4']
ft = Font(color=colors.RED)

a1.font = ft
d4.font = ft

a1.font.italic = True  #is not allowed

a1.font = Font(color=colors.RED,italic=True)

Copying styles(复制样式):
样式也可以被复制.

from openpyxl.styles import Font
from copy import copy

ft1 = Font(name='Arial',size=14)
ft2 = copy(ft1)
ft2.name = "Tahoma"
print(ft1.name)
print(ft2.name)
print(ft2.size)

####Basic Font Colors(基本字体颜色)
颜色通常是RGB或aRGB的十六进制值。颜色模块包含一些方便的常量.

from openpyxl.styles import Font
from openpyxl.styles.colors import RED

font = Font(color=RED)
font = Font(color="FFBB00")

还支持传统索引颜色以及主题和色彩.

from openpyxl.styles.colors import Color

c = Color(indexed=32)
print(c)
c = Color(theme=6,tint=0.5)
print(c)

####应用样式(Applying Styles):
样式直接应用于单元格.

from openpyxl.workbook import Workbook
from openpyxl.styles import Font,Fill

wb = Workbook()
ws = wb.active
c = ws['A1']
c.font = Font(size=12)

wb.save('table\\style.xlsx')

样式还可以应用于列和行,但请注意,这仅适用于文件关闭后创建的单元格(在Excel中)。如果您想将样式应用于整个行和列,那么您必须将样式应用于每个单元格。这是对文件格式的限制:

col = ws.column_dimensions['A']
col.font = Font(bold=True)
row = ws.row_dimensions[1]
row.font = Font(underline="single")

####样式合并单元格(Styling Merged Cells):
有时候你想格式化一系列单元格,就好像它们是单个对象一样。 Excel假装可以通过合并单元格(删除除左上角单元格以外的所有单元格)然后重新创建这些单元格来应用伪类型。代码参考:
https://openpyxl.readthedocs.io/en/2.5/styles.html

from openpyxl.styles import Border,Side,PatternFill,Font,GradientFill,Alignment
from openpyxl import Workbook

def style_range(ws,cell_range,border=Border(),fill=None,font=None,alignment=None):
"""
App styles to a range of cells as if they were a single cell.
:param ws:
:param cell_range:
:param border:
:param fill:
:param font:
:param alignment:
:return:
"""

top = Border(top=border.top)
left = Border(left=border.left)
right = Border(right=border.right)
bottom = Border(bottom=border.bottom)

first_cell = ws[cell_range.split(":")[0]]
if alignment:
    ws.merge_cells(cell_range)
    first_cell.alignment = alignment

rows = ws[cell_range]
if font:
    first_cell.font = font

for cell in rows[0]:
    cell.border = cell.border + top
for cell in rows[-1]:
    cell.border = cell.border + bottom

for row in rows:
    L = row[0]
    r = row[-1]
    L.border = L.border + left
    r.border = r.border + right
    if fill:
        for c in row:
            c.fill = fill

wb = Workbook()
ws = wb.active
my_cell = ws['B2']
my_cell.value = "My Cell"

thin = Side(border_style="thin",color = "000000")
double = Side(border_style="double",color="ff0000")

border = Border(top=double,left=thin,right=thin,bottom=double)

fill = PatternFill("solid",fGColor="DDDDDD")
fill = GradientFill(stop=("000000","FFFFFF"))

font = Font(b=True,color="FF0000")
al = Alignment(horizontal="center",vertical="center")

style_range(ws,'B2:F4',border=border,fill=fill,font=font,alignment=al)

wb.save("table\\styled.xlsx")

####编辑页面设置(Edit Page Setup):

from openpyxl.workbook  import Workbook

wb = Workbook()
ws = wb.active

ws.page_setup.orientation = ws.ORIENTATION_LANDSCAPE
ws.page_setup.paperSize = ws.PAPERSIZE_TABLOID
ws.page_setup.fitToHeight = 0
ws.page_setup.fitToWidth = 1
wb.save("table\\styledone.xlsx")

####命名样式(Named Styles):
与单元格样式相比,命名样式是可变的。当您想要将格式一次应用到很多不同的单元格时,它们是有意义的。 NB。一旦您为单元格指定了命名样式,对样式的其他更改将不会影响单元格。
一旦一个已命名的样式被注册到一个工作簿中,它就可以简单地通过名称来引用。

####创建一个命名样式(Creating a Named Style):

from openpyxl.styles import NamedStyle,Font,Border,Side
highlight = NamedStyle(name="highlight")
highlight.font = Font(bold=True,size=20)
bd = Side(style='thick',color="000000")
highlight.border = Border(left=bd,top=bd,right=bd,bottom=bd)

一旦创建了命名样式,它就可以在工作簿中注册.

wb.add_named_style(highlight)

但是,第一次将它们分配给单元格时,命名样式也会自动注册:

ws['A1'].style = highlight

一旦注册,使用名称分配样式:

ws['D5'].style = 'highlight'

例如:
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
wb.add_named_style(highlight)
ws['A1'].style = highlight

ws['D5'].style = 'highlight'

wb.save("table\\styles.xlsx")

####使用内置样式(Using builtin styles):
该规范包括一些内置的样式,也可以使用。不幸的是,这些样式的名称以其本地化形式存储。 openpyxl只会识别英文名称,而且只能写在这里。这些如下:

数字格式(Number formats):

‘Comma’
‘Comma [0]’
‘Currency’
‘Currency [0]’
‘Percent’

信息化(Informative):

‘Calculation’
‘Total’
‘Note’
‘Warning Text’
‘Explanatory Text’

文字样式(Text styles):

‘Title’
‘Headline 1’
‘Headline 2’
‘Headline 3’
‘Headline 4’
‘Hyperlink’
‘Followed Hyperlink’
‘Linked Cell’

比较(Comparisons):

‘Input’
‘Output’
‘Check Cell’
‘Good’
‘Bad’
‘Neutral’

强调(Highlights):
‘Accent1’
‘20 % - Accent1’
‘40 % - Accent1’
‘60 % - Accent1’
‘Accent2’
‘20 % - Accent2’
‘40 % - Accent2’
‘60 % - Accent2’
‘Accent3’
‘20 % - Accent3’
‘40 % - Accent3’
‘60 % - Accent3’
‘Accent4’
‘20 % - Accent4’
‘40 % - Accent4’
‘60 % - Accent4’
‘Accent5’
‘20 % - Accent5’
‘40 % - Accent5’
‘60 % - Accent5’
‘Accent6’
‘20 % - Accent6’
‘40 % - Accent6’
‘60 % - Accent6’
pandas

有关内建样式的更多信息:
openpyxl.styles.builtins

如有错误之处,请指正。

参考:
https://openpyxl.readthedocs.io/en/latest/

--结束END--

本文标题: python3.5操作office Ex

本文链接: https://www.lsjlt.com/news/186944.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python3.5操作office Ex
    #第二篇:##openpyxl Write a workbook: from openpyxl import Workbook from openpyxl.compat import range from openpyxl.utils im...
    99+
    2023-01-31
    操作 office
  • python+xlrd+xlwt操作ex
    xlrd(读操作),xlwt(写操作)上述软件下载后,分别解压,之后在cmd命令下分别进入对应的目录中运行python setup.py install如果运行过程中提示缺少setuptools,则先运行python ez_setup.py...
    99+
    2023-01-31
    操作 python xlrd
  • 千锋扣丁学堂Python培训之操作Ex
    今天千锋扣丁学堂Python培训老师给大家分享一篇关于Python3操作Excel文件(读写)的简单实例详解,首先来安装版本安装的版本为0.9.3,但是官网的介绍还是关于Version0.7.3版本的,无妨,不影响理解。 安装 读Exce...
    99+
    2023-01-31
    操作 千锋扣 丁学堂
  • Java中怎么操作Office对象
    本篇内容主要讲解“Java中怎么操作Office对象”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中怎么操作Office对象”吧!Java中使用JCOM操作Office对象[@more@...
    99+
    2023-06-03
  • python之python-docx:操作 office word 文档
    在Python中,有一个名为python-docx的库,它提供了丰富的功能,可以方便地创建、修改和读取Word文档。 本文将详细介绍python-docx库的使用,并提供一些示例来演示其中的功能。为了更好地理解,我们将分为以下几个方面进行讨...
    99+
    2023-08-31
    c# 开发语言 word
  • Linux的ex命令有什么作用
    本文小编为大家详细介绍“Linux的ex命令有什么作用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Linux的ex命令有什么作用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。ex启动vim编辑器的ex编辑模式...
    99+
    2023-06-28
  • 怎么使用ABAP编程实现对微软Office Word文档的操作
    这期内容当中小编将会给大家带来有关怎么使用ABAP编程实现对微软Office Word文档的操作,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。SAP ABAP里提供了一个标准的类CL_DOCX_DOCUM...
    99+
    2023-06-04
  • 怎样操作C++操作符
    本篇文章给大家分享的是有关怎样操作C++操作符,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。C++中指令系统的每一条指令都有一个C++操作符,它表示该指令应进行什么性质的操作,...
    99+
    2023-06-17
  • Office制作的PPT转成Word文档的两种方法
    方法1:使用复制粘贴的方法将PPT内容转成Word文档。1. 打开PPT文件,选择要转换的幻灯片。2. 按下Ctrl+A,将所有内容...
    99+
    2023-09-15
    Word
  • Python操作SQLLite(基本操作
      SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是在世界上最广泛部署的 SQL 数据库引擎。SQLite 源代码不受版权限制。 Python SQLITE数据库是一款非常...
    99+
    2023-01-31
    操作 Python SQLLite
  • laravel操作redis和缓存操作
    一:操作redis 1:redis拓展安装 composer require predis/predis 或者你也可以通过 PECL 安装 PhpRedis PHP 扩展,安装方法比较复杂,个人不推荐 2:配置redis 在con...
    99+
    2023-09-04
    laravel php redis 缓存 Powered by 金山文档
  • 文件操作的艺术:操作系统中的高效操作
    1. 理解文件结构 文件是操作系统中存储和组织数据的基本单元。它们由文件头、文件内容和文件尾组成。文件头包含有关文件及其内容的信息,例如文件类型、大小和创建日期。文件内容是实际数据,而文件尾标识文件结束。 2. 文件操作命令 每个操作系...
    99+
    2024-02-29
    文件操作、操作系统、命令行、Python、文件权限
  • JDBC操作
    一.JDBC:Java Database Connection 表示数据库连接,是Java中专门提供的一组用于操作数据库的标准,所有的数据库生产商如果想为Java提供支持,则必须支持此标准。JDBC实际上是...
    99+
    2024-04-02
  • 群晖NAS利用Docker容器搭建KMS激活服务器实现激活windows系统和office(操作步骤)
    前言 Windows系统中能够通过KMS进行激活的一般称为VL版,即VOLUME授权版。我们可以自行搭建KMS激活服务器,实现每180天一次的自动激活,使得系统一直保持激活状态。这次...
    99+
    2024-04-02
  • DGfailover操作
    DGfailover操作.txt 备库操作 由于是failover,所以理解主库这时候已经无法正常使用,只需备库切换至pridb 1.停止MRP(关闭主动应用) alter database...
    99+
    2024-04-02
  • Git操作
    Git 操作方法 Git 是一个分布式版本控制系统,用于管理项目的源代码。 gitee新建仓库提示如下 具体介绍看下面 1. 创建仓库 初始化本地仓库 使用以下命令在本地目录中初始化一个新的 Git 仓库: git init 克隆远程仓库...
    99+
    2023-08-30
    git
  • office实操技能02:多行公式在指定的字符处对齐
    更多office技巧可以参看: office实操技能01:修改微软Office页面的(非背景的)浅绿底色、设置默认字体和主题颜色、取消页眉横线、PPT默认的等线字体_如何取消等线字体_运筹码仓的博客-CSDN博客 如何将pdf多页插入wor...
    99+
    2023-10-12
    office
  • 文件操作精通:掌握操作系统中的关键操作
    文件操作是使用操作系统时的一项基本技能。通过理解和利用这些操作,用户可以有效地管理、创建、编辑和删除文件。以下是对文件操作精通的详细指南: 命令行文件操作 命令行提供了用户与操作系统直接交互的界面。许多文件操作命令可以在命令行中执行,包括...
    99+
    2024-02-29
    文件操作、操作系统、命令行、文件管理
  • redis的操作是不是原子操作
    原子操作:incr、decr、incrby、decrby、getset、setnx。它们不可中断,要么完全执行,要么完全不执行。非原子操作:set、setex、del。它们可能会被中断,...
    99+
    2024-04-20
    redis
  • Linux 查看操作操作系统版本
    在 Linux 上,你可以使用以下命令来查看操作系统版本:1. 使用 lsb_release 命令:```lsb_release -...
    99+
    2023-09-06
    Linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作