2018-10-17 12:10:03 qq_39591494 阅读数 465

Python操作Office之Word(总结)

多余的废话还是要说说:

本章学习Python操作office之word文档,对word文档进行相关的操作,在工作当中word文档还是很重要的,尤其是目前在运维工程师这个岗位,几乎都会去写文档,操作文档,部署文档等等…

print ("开始正题,废话结束!")

一、安装Python-docx

Python-docx是专门针对于word文档的一个模块,只能读取docx 不能读取doc文件。说白了,python就相当于windows操作系统,QQ就是跑在windows操作系统上的软件,QQ最大的作用是可以去聊天,说话。 在这里python-docx就相当于这里的qq 它主要的功能是对docx文件进行操作,管理等.(个人理解,非专业!)

1.1、安装Python-docx

1.1.1、使用虚拟环境安装python-docx

pip install python-docx # 安装命令

安装结束后,在此虚拟环境中运行Jupyter notebook

jupyter notebook

1.1.2、切换工作目录(使用 %cd命令)

%cd F:\python_test1\Python_office # 进入目录
%pwd  # 查看当前的工作目录
>>>'F:\\python_test1\\Python_office' # 输出结果

二、对word文档进行编辑

在对word文档编辑之前需要导入Document模块如下:

from docx import Document
Doc = Document() 
解释:from 从 docx这个文件中,导入一个叫Document的一个东西,Document是文档的意思,所以它是对word文档进行操作的一个玩意. 在下面Doc = Document() 可以理解为 Document就是一个类,这个操作也就是实例化的过程,生成对象为:Doc

那Document实例化了一个Object叫Doc 那么Doc肯定会有很多的方法,这些方法就是对word文档进行操作的方法如下:

Doc.add_heading("Python是什么东西???")
<docx.text.paragraph.Paragraph at 0x28033582e48>
# Doc.add_heading 意思是添加一个叫做heading的一个东西在这里heading指的是标题的意思,也就是添加一个标题叫做python是什么东西???运行完成后它会生成一个对象.

2.1、添加一个段落(paragraph)

Doc.add_paragraph("Python是一种面向对象的编程语言~~~") # 在这里paragraph指的就是一个段落的意思
<docx.text.paragraph.Paragraph at 0x280335a17b8>

2.2、添加多个段落(paragraph)

Doc.add_paragraph("Python 第三模块学习")
Doc.add_paragraph("Python 对word进行操作")

2.3、如何查看word文档?

写完之后我们需要查看首先需要保存 如下:

Doc.save("Python_word.docx")
# save:保存 为名字叫:Python_word.docx 的文件

三、如何添加一级标题,二级标题,三级标题…?

3.1、添加一级标题

Doc = Document()
Doc.add_heading("这是一级标题",level=1)
Doc.add_heading("这是二级标题",level=2)
Doc.add_heading("这是三级标题",level=3)
Doc.add_heading("这是四级标题",level=4)
Doc.save("标题.docx")

打开效果如下:

四、如何添加一个副级标题?

Doc.add_heading("这是一个一级标题",level=1)
Doc.add_paragraph("这是一个副标题","Subtitle")
Doc.save("副标题.docx")

打开效果如下:

五、查看已有的样式

5.1、查看paragraph有哪些样式

from docx.enum.style import WD_STYLE_TYPE

for i in Doc.styles:
    if i.type == WD_STYLE_TYPE.PARAGRAPH:
        print(i.name)
>>>
Normal
Heading 1
Heading 2
Heading 3
Heading 4
Heading 5
Heading 6
Heading 7
Heading 8
Heading 9
No Spacing
Title
Subtitle
List Paragraph
Body Text
Body Text 2
Body Text 3
List
List 2
List 3
List Bullet
List Bullet 2
List Bullet 3
List Number
List Number 2
List Number 3
List Continue
List Continue 2
List Continue 3
macro
Quote
Caption
Intense Quote
TOC Heading

5.2、查看文字有哪些样式

from docx.enum.style import WD_STYLE_TYPE

for i in Doc.styles:
    if i.type == WD_STYLE_TYPE.CHARACTER:
        print(i.name)
>>>
Default Paragraph Font
Heading 1 Char
Heading 2 Char
Heading 3 Char
Title Char
Subtitle Char
Body Text Char
Body Text 2 Char
Body Text 3 Char
Macro Text Char
Quote Char
Heading 4 Char
Heading 5 Char
Heading 6 Char
Heading 7 Char
Heading 8 Char
Heading 9 Char
Strong
Emphasis
Intense Quote Char
Subtle Emphasis
Intense Emphasis
Subtle Reference
Intense Reference
Book Title

个人练习案例:

Docx = Document()
Docx.add_heading("这是一个一级标题",level=1)
Docx.add_paragraph("这是一个副级标题","Title")
A = Docx.add_paragraph("我目前正在学习Python")
A.add_run("我学习的很快乐,啊哈哈哈哈哈,非常好 Good!!!")
Docx.add_heading("这是一个二级标题",level=2)
A = Docx.add_paragraph("这个是二级标题的内容呀")
B = A.add_run("二级标题里面的正文 继续添加!!!!!!!")
B.font.bold = True # 同时我要对这些正文进行加粗~~~~
B.font.size = (20)
Docx.add_heading("我爱学习Python以下就是python的logo呀",level=3)
Docx.add_picture("1.png")
Docx.add_table(rows=5, cols=5)
Docx.save("Python.docx")

在这里插入图片描述

2017-10-27 10:07:22 luanpeng825485697 阅读数 6866

全栈工程师开发手册 (作者:栾鹏)

python教程全解

python操作office办公软件(doc)。

前提条件是电脑已经安装了office办公软件,并且下载安装了pywin32-217.win32-py2.7库

安装python库的方法,可以参考 Python库的安装与卸载

然后就可以使用python编程操作word软件了。word软件的启动有时较慢,所以可能需要等待几秒中才能启动成功。

python2.7下代码如下

#coding:utf-8
#python操作word
from Tkinter import Tk
from time import sleep
from tkMessageBox import showwarning
import win32com.client as win32

warn = lambda app: showwarning(app, 'Exit?') #弹出提示框

def word():
    app = 'Word'
    word = win32.gencache.EnsureDispatch('%s.Application' % app) #创建word对象 
    doc = word.Documents.Add() #添加一个文档
    word.Visible = True  #设置为桌面显示可见
    sleep(1)  #暂停一下,让用户看清演示的每一步

    rng = doc.Range(0,0)  #定位光标位置
    rng.InsertAfter('first line\r\n\r\n')  #在光标后加入内容
    sleep(1)  #暂停一下,让用户看清演示的每一步
    for i in range(3, 8):
        rng.InsertAfter('Line %d\r\n' % i)  #在光标后加入内容
        sleep(1)  #暂停一下,让用户看清演示的每一步
    rng.InsertAfter("\r\nlast line\r\n") #在光标后加入内容

    warn(app)   #弹出警告消息
#     doc.Save("test.doc")  #保存
    doc.Close(False)  #文档关闭
    word.Application.Quit()   #word应用退出

if __name__=='__main__':
    Tk().withdraw()  #不让tk顶级窗口出现,因为默认tk会自动创建一个顶级窗口,而且不会将其隐藏
    word()

python3.6中代码如下

#coding:utf-8
#python操作word
from tkinter import Tk
from time import sleep
from tkinter.messagebox import showwarning
import win32com.client as win32

warn = lambda app: showwarning(app, 'Exit?') #弹出提示框

def word():
    app = 'Word'
    word = win32.gencache.EnsureDispatch('%s.Application' % app) #创建word对象 
    doc = word.Documents.Add() #添加一个文档
    word.Visible = True  #设置为桌面显示可见
    sleep(1)  #暂停一下,让用户看清演示的每一步

    rng = doc.Range(0,0)  #定位光标位置
    rng.InsertAfter('first line\r\n\r\n')  #在光标后加入内容
    sleep(1)  #暂停一下,让用户看清演示的每一步
    for i in range(3, 8):
        rng.InsertAfter('Line %d\r\n' % i)  #在光标后加入内容
        sleep(1)  #暂停一下,让用户看清演示的每一步
    rng.InsertAfter("\r\nlast line\r\n") #在光标后加入内容

    warn(app)   #弹出警告消息
#     doc.Save("test.doc")  #保存
    doc.Close(False)  #文档关闭
    word.Application.Quit()   #word应用退出

if __name__=='__main__':
    Tk().withdraw()  #不让tk顶级窗口出现,因为默认tk会自动创建一个顶级窗口,而且不会将其隐藏
    word()
2017-10-27 10:05:58 luanpeng825485697 阅读数 12637

全栈工程师开发手册 (作者:栾鹏)

python教程全解

python操作office办公软件(excel)。本文对涉及xls文件读写上不方便。如果你需要通过python读写xls文件,可以参考http://blog.csdn.net/luanpeng825485697/article/details/78595320

前提条件是电脑已经安装了office办公软件,并且下载安装了pywin32-217.win32-py2.7库

安装python库的方法,可以参考 Python库的安装与卸载

然后就可以使用python编程操作excel软件了,excel软件的启动可能会比较慢,所以有可能要等待几秒才能启动成功。

python2.7下代码

#coding:utf-8
#python控制excel软件,本机电脑需要安装office软件
from Tkinter import Tk
from time import sleep
from tkMessageBox import showwarning
import win32com.client as win32

warn = lambda app: showwarning(app, 'Exit?')   #弹出提示框

def excel():
    app = 'Excel'
    xl = win32.gencache.EnsureDispatch('%s.Application' % app) #创建excel对象 
    ss = xl.Workbooks.Add()  #添加一个工作簿
    sh = ss.ActiveSheet  #取得活动(当前)工作表
    xl.Visible = True   #设置为桌面显示可见
    sleep(1)   #暂停一下,让用户看清演示的每一步

    sh.Cells(1,1).Value = 'first line'
    sleep(1) #暂停一下,让用户看清演示的每一步
    for i in range(3, 8):
        sh.Cells(i,1).Value = 'line %d' % i  #在3到8行,第一列,写入内容
        sleep(1) #暂停一下,让用户看清演示的每一步
    sh.Cells(i+2,1).Value = "last line"
    sh.Range(sh.Cells(1, 1), sh.Cells(4, 1)).Font.Bold = True  #设置指定区域的字体格式
    warn(app)  #弹出警告消息
    ss.Close(False)  #工作簿关闭保存
    xl.Application.Quit()  #excel应用退出

if __name__=='__main__':
    Tk().withdraw()   #不让tk顶级窗口出现,因为默认tk会自动创建一个顶级窗口,而且不会将其隐藏
    excel()

python3.6下代码

#coding:utf-8
#python控制excel软件,本机电脑需要安装office软件
from tkinter import Tk
from time import sleep
from tkinter.messagebox import showwarning
import win32com.client as win32

warn = lambda app: showwarning(app, 'Exit?')   #弹出提示框

def excel():
    app = 'Excel'
    xl = win32.gencache.EnsureDispatch('%s.Application' % app) #创建excel对象 
    ss = xl.Workbooks.Add()  #添加一个工作簿
    sh = ss.ActiveSheet  #取得活动(当前)工作表
    xl.Visible = True   #设置为桌面显示可见
    sleep(1)   #暂停一下,让用户看清演示的每一步

    sh.Cells(1,1).Value = 'first line'
    sleep(1) #暂停一下,让用户看清演示的每一步
    for i in range(3, 8):
        sh.Cells(i,1).Value = 'line %d' % i  #在3到8行,第一列,写入内容
        sleep(1) #暂停一下,让用户看清演示的每一步
    sh.Cells(i+2,1).Value = "last line"
    sh.Range(sh.Cells(1, 1), sh.Cells(4, 1)).Font.Bold = True  #设置指定区域的字体格式
    warn(app)  #弹出警告消息
    ss.Close(False)  #工作簿关闭保存
    xl.Application.Quit()  #excel应用退出

if __name__=='__main__':
    Tk().withdraw()   #不让tk顶级窗口出现,因为默认tk会自动创建一个顶级窗口,而且不会将其隐藏
    excel()
2018-10-21 21:21:58 qq_39591494 阅读数 230

Python操作office之excel

一、什么是Excel?

Microsoft Excel是Microsoft为使用Windows和Apple Macintosh操作系统的电脑编写的一款电子表格软件。直观的界面、出色的计算功能和图表工具,再加上成功的市场营销,使Excel成为最流行的个人计算机数据处理软件。在1993年,作为Microsoft Office的组件发布了5.0版之后,Excel就开始成为所适用操作平台上的电子制表软件的霸主。

二、在Jupyter notebook对Excel进行操作

Excel表格内容如下:
在这里插入图片描述

2.1、安装openpyxl

pip install openpyxl

2.2、导入openpyxl

%cd F:\python_test1\Python_office  # 进入工作目录
# 安装openpyxl
# pip install openpyxl
import openpyxl # 导入openpyxl
wb = openpyxl.load_workbook("yankerp1.xlsx")
# wb是一个object openpyxl.load_workbook就是把yankerp1.xlsx这个文档赋值给wb 那么wb就是那个yankerp1.xlsx这个文件

2.3、导入工作簿

SH = wb.active # 导入工作簿使用active

2.4、取坐标位置的值

SH["A1"].value
SH["A2"].value
SH["A3"].value

2.5、更改坐标值及获取坐标内容:

SH["A3"].value
>>>张三
SH["A3"] = "ZhangSan"
SH["A3"].value
>>>ZhangSan
SH["A1"].coordinate
>>>A1

2.6、获取当前工作簿名称:

SH.title
>>>成绩单

更改工作簿名称:

SH.title = "学生成绩单"
SH.title
>>> 学生成绩单

2.7、保存更改后的Excel到新的Excel

wb.save("学生成绩单")

更改后打开如下:
在这里插入图片描述

三、自我练习

原始表1:

%cd F:\python_test1\Python_office

import openpyxl
from openpyxl.styles import Font
WB = openpyxl.load_workbook("学生.xlsx")

Sheet1 = WB["Sheet1"]
Sheet2 = WB["Sheet2"]

index = 2
for i in Sheet1.rows:
    if i[0].coordinate != "A1" and i[1].value > 60:
        print(i[0].value, i[1].value)
        Sheet2["A" + str(index)] = i[0].value
        Sheet2["B" + str(index)] = i[1].value
        index += 1
    Sheet2.title = "及格同学"
    Sheet1.cell(row=9, column=1).value = "平均分数"
    Sheet1.cell(row=9, column=2).value = "=average(B2,B8)"
    Sheet1.title = "同学平均分数表"
    Sheet1["A2"] = "延凯"
    Sheet1["A3"] = "张三"
    
    fount = Font(bold=True, size=14)
    Sheet1["A9"].font = fount
WB.save("student1.xlsx")

在这里插入图片描述

在这里插入图片描述

2017-06-16 15:22:00 weixin_30823683 阅读数 81

  首先介绍下office win32 com接口,这个是MS为自动化提供的操作接口,比如我们打开一个EXCEL文档,就可以在里面编辑VB脚本,实现我们自己的效果。对于这种一本万利的买卖,Python怎么能放过,它内置了对于win32 com接口的支持,我们可以方便的控制。

  要想熟悉使用office win32 com接口,没有什么比MS提供的API文档更加权威了。

  下面我们以操作EXCEL文档为例:

  一、对Excel文件进行写入操作:

#!/usr/bin/python3
# -*- coding:utf-8 -*-
__author__ = 'mayi'

# 导入模块
import win32com.client

# 打开Excel
Application = win32com.client.Dispatch("Excel.Application")
# 或者使用下面的方法,使用启动独立的进程:
# Application = win32com.client.DispatchEx("Excel.Application")

# 后台运行,显示程序界面,不警告
Application.Visible = 1  # 调试阶段建议打开
Application.DisplayAlerts = 0

# 新建一个文档
Workbook = Application.Workbooks.Add()

# 打开一个文档
Workbook = Application.Workbooks.Open("F:\\test.xlsx")
# 根据工作表名
Base = Workbook.Worksheets("Sheet1")
# 根据工作表顺序
# Base = Workbook.Worksheets(1)

# 接受当前工作表
# Base = Workbook.ActiveSheet

# 添加内容: 0.0, 0.5, 1.0
Base.Cells(1, 1).Value = 'Values'
Base.Cells(1, 2).Value = 0.0
Base.Cells(1, 3).Value = 0.5
Base.Cells(1, 4).Value = 1.0

Workbook.SaveAs("F:\\test.xlsx")

# 关闭文档
Workbook.Close()

# 退出Excel
Application.Quit()

  二、对Excel文件进行读取操作:

#!/usr/bin/python3
# -*- coding:utf-8 -*-
__author__ = 'mayi'

# 导入模块
import win32com.client

# 打开Excel
Application = win32com.client.Dispatch("Excel.Application")
# 或者使用下面的方法,使用启动独立的进程:
# Application = win32com.client.DispatchEx("Excel.Application")

# 后台运行,显示程序界面,不警告
Application.Visible = 1  # 调试阶段建设打开
Application.DisplayAlerts = 0

# 打开一个文档
Workbook = Application.Workbooks.Open("F:\\test.xlsx")
Base = Workbook.Worksheets(1)

# 接受当前工作表
Base = Workbook.ActiveSheet

#列数
ncols = 0
while True:
    cell_value = Base.Cells(1, ncols + 1).Value
    if cell_value:
        ncols += 1
    else:
        break

# 行数
nrows = 0
while True:
    cell_value = Base.Cells(nrows + 2, 1).Value  # 第一行表头
    if cell_value:
        for col in range(ncols):
            cell_key = Base.Cells(1, col + 1).Value
            cell_value = Base.Cells(nrows + 2, col + 1).Value
            print(cell_key, "=>", cell_value, end = "\t")
        print("")
        nrows += 1
    else:
        break

# 关闭文档
Workbook.Close()

# 退出Excel
Application.Quit()

  假设test.xlsx文件中的内容如下:

  

  则,运行以上程序输出:

序号 => 1.0	姓名 => 张三	姓别 => 男	地址 => 北京	
序号 => 2.0	姓名 => 李四	姓别 => 女	地址 => 上海	
序号 => 3.0	姓名 => 王五	姓别 => 男	地址 => 南京	

  

 

转载于:https://www.cnblogs.com/mayi0312/p/7027724.html

没有更多推荐了,返回首页