2017-09-24 22:09:25 niuge8905 阅读数 2248

首先声明我的Python的版本是3.6的。照着树上抄有很多错误的地方。这也是Python用的很不爽的地方,老是更新方法,2.X的Python升到3.X,附带的模块各种改,解决答案又分布在各个旮旯里。
这里直接放我运行好的代码(与Excel交互):

from tkinter import Tk
from time import sleep
from tkinter import messagebox
import win32com.client as win32

warn=lambda app:messagebox.askokcancel(app,'Exit?')
RANGE=range(3,8)

def excel():
    app='Excel'
    xl=win32.gencache.EnsureDispatch('%s.Application' % app)
    ss=xl.Workbooks.Add()
    sh=ss.ActiveSheet
    xl.Visible=True
    sleep(1)

    sh.Cells(1,1).Value='Python-to-%s Demo' % app
    sleep(1)
    for i in RANGE:
        sh.Cells(i,1).Value='Line %d' %1
        sleep(1)
    sh.Cells(i+2,1).Value="Th-th-th-that's all flocs!"

    warn(app)
    ss.Close(False)
    xl.Application.Quit()

if __name__=='__main__':
    Tk().withdraw()
    excel()

最后结果:
这里写图片描述

word留待以后再补充。所以也可以把excel结合在Dynamo里。

其他问题请咨询:qq 254033230(非免费,时间是有价值的,咨询前考虑清楚,没这觉悟勿扰)

更多讲解及例子请见:http://class.qq.com/class/24205.html 快速更新,也算您对我的支持。

2019-02-26 22:05:08 qq_40962646 阅读数 296

       最近在做一个用Python读取office系列文件的小型应用,说实话用Python对windows系统进行操作真的是一件痛苦的事情…
       尤其比较坑的是在Windows上,Python不支持mknod函数,这也就意味着你要创建一个非.txt文件的话你需要先创建一个.txt文件,再强制修改其后缀。
       现在来分享一下Python如何对word文件(.docx)进行读取?
       因为网上有很多用python创建.docx文件的方法了,这里就不多说,主要来讲讲对已有数据的.docx数据进行读取。首先必须说明的是,.docx其实把内容分得很细,一篇文章的并不是以段为单位的,而是以runs为单位的,即如果你一段文字中,前半部分加粗而后半部分未加粗,那么从段落读取字体属性(word.paragraphs[i].style.font,bold)就会变成None,我们必须进入到paragraphs的下一层进行读取,即word.paragraphs[i].runs[j].font,bold,才能读取到该段的某一部分文字是否加粗。
       我用的Python3.6,用到的包是python-docx 0.8.7 ,windows10系统, office需要2010及以上的版本。
       from docx import Document 将包导入
        word = Document(.docx文件路径)
        word.paragraphs[0].style.font.name 检测字体【paragraphs[0]即文章的第一段,但是由于段间距、段缩进、首行缩进等原因,len(word. paragraphs)会大于文章的段落数,这是因为出现了许多word.paragraphs[i].text为空的段落,这个自己debug一下就知道了】


        当一个段落中中文所使用的字体与英文所使用的字体不同时,我们需要使用另一种方法进行读取,这时候我们需要使用另一种方法——  word.paragraphs[i].runs[j].font.element.rPr.rFonts.attrib['{http://schemas.openxmlformats.org/wordprocessingml/2006/main}eastAsia'] (读取中文)
word.paragraphs[i].runs[j].font.element.rPr.rFonts.attrib['{http://schemas.openxmlformats.org/wordprocessingml/2006/main}hAnsi'] (读取英文)

在这里插入图片描述
先写到这里……后面慢慢更新
       
       
       
       

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

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:05:58 luanpeng825485697 阅读数 12535

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

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()
2017-10-27 10:07:22 luanpeng825485697 阅读数 6845

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

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()

python3 office

阅读数 248

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