精华内容
下载资源
问答
  • C#复制Word内容到另Word

    千次阅读 2018-02-12 11:00:14
    本篇文章介绍的复制Word内容到另Word的操作分为两种情况,种是复制部分原Word文档内容到另Word文档,包括格式、图片、超链接等;另种是复制文档全部内容(除页眉页脚外)到另Word。下面将详细阐述。...

    本篇文章介绍的复制Word内容到另一个Word的操作分为两种情况,一种是复制部分原Word文档内容到另一个Word文档,包括格式、图片、超链接等;另一种是复制文档全部内容(除页眉页脚外)到另一个Word。下面将详细阐述。

    使用工具:Free Spire.Doc for .NET

    (安装后,将Sprie.Doc.dll文件引用到该项目)

    一、复制部分内容

    C#

    //新建一个word文档对象doc1并加载需要复制的word文档。
    Document doc1 = new Document();
    doc1.LoadFromFile("sample.docx");
    
    //新建一个word文档对象doc2
    Document doc2 = new Document();
    
    //给doc2添加一个section,并将doc1的第一二段的内容和格式等复制到doc2中
    Section s2 = doc2.AddSection();
    Paragraph NewPara1 = (Paragraph)p1.Clone();
    s2.Paragraphs.Add(NewPara1);
    Paragraph NewPara2 = (Paragraph)p2.Clone();
    s2.Paragraphs.Add(NewPara2);
    
    //保存并重新打开文档
    doc2.SaveToFile("copy.docx", FileFormat.Docx2010);
    System.Diagnostics.Process.Start("copy.docx");
    
    

     运行结果:



     

    二、复制全部内容(除页眉页脚外)

    C#

    //新建两个word document对象,并加载待复制的源word文档和目标word文档
    Document sourceDoc = new Document("sample.docx");
    Document destinationDoc = new Document("target.docx");
    
    //遍历源word文档中的所有section并把它们的内容复制到目标word文档
    foreach (Section sec in sourceDoc.Sections)
    {
        foreach (DocumentObject obj in sec.Body.ChildObjects)
        {
            destinationDoc.Sections[0].Body.ChildObjects.Add(obj.Clone());
        }
    }
    //保存并运行目标word文档
    destinationDoc.SaveToFile("target.docx");
    System.Diagnostics.Process.Start("target.docx");

    运行结果:


     

    以上关于复制Word文档到另一个Word文档的内容转自博客http://www.cnblogs.com/Yesi/p/5142418.html

    详细内容可查看原文出处。

    感谢阅读。

    展开全文
  • 第一套习题 1 . 题干 请在【答题】菜单下选择【进入考生文件夹】命令,并按照题目要求完成下面的操作。 ​ 在考生文件夹下打开文档 ( Word素材.docx ) ,按照要求完成下列操作并以该文件名( Word.docx )保存文档。...

    Word字处理习题 \rightarrow第一套习题

    1 . 题干

    请在【答题】菜单下选择【进入考生文件夹】命令,并按照题目要求完成下面的操作。

    ​ 在考生文件夹下打开文档 ( Word素材.docx ) ,按照要求完成下列操作并以该文件名( Word.docx )保存文档。

    ​ 某高校为了使学生更好地进行职场定位和职业准备,提高就业能力,该校学工处将于2013年4月29日(星期五)19:30-21:30在校国际会议中心举办题为“领慧讲堂——大学生人生规划”就业讲座,特别邀请资深媒体人、著名艺术评论家赵蕈先生担任演讲嘉宾。

    ​ 请根据上述活动的描述,利用Microsoft Word制作一份宣传海报(宣传海报的参考样式请参考“Word-海报参考样式.docx”文件),要求如下:

    1. 调整文档版面,要求页面高度35厘米,页面宽度27厘米,页边距(上、下)为5厘米,页边距(左、右)为 3厘米,并将考生文件夹下的图片“Word-海报背景图片.jpg”设置为海报背景。

    2. 根据“Word-海报参考样式.docx”文件,调整海报内容文字的字号、字体和颜色。

    3. 根据页面布局需要,调整海报内容中“报告题目”、“报告人”、“报告日期”、“报告时间”、“报告地点”信息的段落间距。

    4. 在“报告人:”位置后面输入报告人姓名(赵蕈xun)。

    5. 在“主办:校学工处”位置后另起一页,并设置第2页的页面纸张大小为A4篇幅,纸张方向设置为“横向”,页边距为“普通”页边距定义。

    6. 在新页面的“日程安排”段落下面,复制本次活动的日程安排表(请参考“Word-活动日程安排.xlsx”文件),要求表格内容引用Excel文件中的内容,如若Excel文件中的内容发生变化,Word文档中的日程安排信息随之发生变化。

    7. 在新页面的“报名流程”段落下面,利用SmartArt,制作本次活动的报名流程

      (学工处报名、确认坐席作、领取资料、领取门票)。

    8. 设置“报告人介绍”段落下面的文字排版布局为参考示例文件中所示的样式。

    9. 更换报告人照片为考生文件夹下的Pic 2.jpg照片,将该照片调整到适当位置,不要遮挡文档中的文字内容。

    10. 保存本次活动的宣传海报设计为WORD.DOCX。第二页格式,受第3小题影响。所以要调整段落格式。


    2. 步骤

    2.1修改文件名

    步骤1:打开考生文件夹下的文档“Word素材.docx”。
    点击文件
    点击另存为
    修改文件名
    点击保存

    Alt
    Alt
    Alt
    Alt

    2.2 修改页面布局

    Alt

    2.2.1 修改页边距

    步骤2:单击“页面布局”选项卡→“页面设置”组的对话框启动器
    打开“页面设置”对话框
    在“页边距”选项卡中的“页边距”区域中设置页边距
    (上、下)为5厘米,页边距(左、右)为3厘米)

    Alt
    Alt
    Alt

    2.2.2 修改页面高度和宽度

    步骤3:在“纸张”选项卡中的“纸张大小”区域设置为“自定义”,然后设置页面高度35厘米,页面宽度27厘米。
    Alt
    Alt
    Alt
    Alt

    2.2.3 修改页面背景

    步骤4:单击“页面布局”选项卡→“页面背景”组的“页面颜色”右侧的下三角
    打开“页面颜色”下拉列表,选择“填充效果”
    打开“填充效果”对话框,单击“图片”选项卡中的“选择图片”按钮
    选择考生文件夹下的图片“Word-海报背景图片.jpg”
    这样就设置好了海报背景。
    Alt
    Alt
    Alt
    Alt
    Alt
    Alt

    2.3 修改字体、字号、字色、段落

    2.3.1修改示例

    “领慧讲堂”就业讲座

             ~~~~~~~~~ —— 微软雅黑 60 加粗 红色(标准色)

    “领慧讲堂”就业讲座


    报告题目:
    报 告 人:
    报告日期:
    报告时间:
    报告地点:
    主 办:

             ~~~~~~~~~ —— 黑体 36 加粗 蓝色(标准色)

    报告题目:

    报 告 人:

    报告日期:

    报告时间:

    报告地点:

    主 办:


    大学生人生规划
    赵蕈
    2010年4月29日(星期五)
    19:30-21:30
    校国际会议中心
    校学工处

    —— 黑体 36 加粗 白色(标准色)
    白色字体在当前背景下无法正常观看,故使用黑色显示。

    大学生人生规划

    赵蕈

    2010年4月29日(星期五)

    19:30-21:30

    校国际会议中心

    校学工处


    欢迎大家踊跃参加!

    —— 华文行楷 72 加粗 白色(标准色)
    白色字体在当前背景下无法正常观看,故使用黑色显示。

    欢迎大家踊跃参加


    2.3.2 修改方法:

    Alt
    Alt

    2.4 修改文本段落

    选中文本“领慧讲堂就业讲座到校学工处”,
    单击“开始”选项卡→“段落”组的对话框启动器,
    打开“段落”对话框,
    在“行距”中选择的“多倍行距”,
    在“设置值”中设置“4”。

    Alt

    Alt

    第一页完成后示例图如下:

    Alt

    2.5 另起一页

    首先将鼠标指针定位在“主 办:校学工处”的下一行上
    然后单击“插入”选项卡→“页”组→“分页”按钮
    这样在“主办:校学工处”位置后另起新的一页。

    Alt
    Alt
    Alt

    2.6 修改字体、字号、字色

    2.6.1 修改示例

    “领慧讲堂”就业讲座之大学生人生规划

             ~~~~~~~~~ —— 微软雅黑 16 红色(标准色)

    “领慧讲堂”就业讲座之大学生人生规划


    活动细则

    —— 微软雅黑 16 加粗 红色(标准色)

    活动细则


    日程安排:
    报名流程:
    报告人介绍:

    —— 黑体 11 加粗 黑色(标准色)

    日程安排:

    报名流程:

    报告人介绍:


    赵先生是资深媒体人、著名艺术评论家、著名书画家。曾任某周刊主编。现任某出版集团总编、硬笔书协主席、省美协会员、某画院特聘画家。他的书法、美术、文章、摄影作品千余幅(篇)在全国200多家报刊上发表,名字及作品被收入多种书画家辞典。书画作品被日本、美国、韩国等海外一些机构和个人收藏,在国内外多次举办专题摄影展和书画展。

    —— 宋体(中文正文) 10.5 白色(标准色)
    白色字体在当前背景下无法正常观看,故使用黑色显示。

    赵先生是资深媒体人、著名艺术评论家、著名书画家。曾任某周刊主编。现任某出版集团总编、硬笔书协主席、省美协会员、某画院特聘画家。他的书法、美术、文章、摄影作品千余幅(篇)在全国200多家报刊上发表,名字及作品被收入多种书画家辞典。书画作品被日本、美国、韩国等海外一些机构和个人收藏,在国内外多次举办专题摄影展和书画展。


    2.6.2 修改方法:

    Alt
    Alt

    2.7 修改页面布局

    首先将鼠标指针的定位在第二页
    单击“页面布局”选项卡→“页面设置”组的对话框启动器

    在“页边距”选项卡中的“页边距”区域中设置页边距(上、下)为 2.54 厘米,页边距(左、右)为 3.18 厘米
    在“页边距”选项卡中的“纸张方向”区域中选择“横向”

    在“纸张”选项卡中的“纸张大小”区域设置为“A4”
    在“纸张”选项卡中的"应用于”区域设置为“在插入点之后”

    Alt
    Alt

    2.8 修改日程安排表(Excel表)

    首先将鼠标指针的定位在第二页的“日程安排”段落下面一行
    然后单击“插入”选项卡→“文本”组→“对象”按钮
    打开“对象”对话框,切换到“由文件创建”选项卡
    单击该选项卡中的“浏览”按钮
    到考生文件夹下打开“Word-活动日程安排.xlsx”文件
    同时选中“链接到文件(K)”选项

    Alt
    Alt
    Alt
    Alt

    2.9 修改报名流程(SmartArt)

    1. 将鼠标指针定位在第二页的“报名流程”段落下面然后单击“插入”选项卡→“插图”组→“SmartArt”按钮,打开“选择SmartArt图形”对话框,选择流程组中的第一个图形.
    2. 然后单击“SmartArt工具”→“设计”选项卡→“添加形状”的→“在后面添加形状”按钮,为图形添加一组新的图形,如图3所示。然后在图形中分别输入文本:学工处报名、确认坐席、领取资料、领取门票
      33 3. 单击“SmartArt工具”→“格式”选项卡→“形状样式”组的→“其他”按钮,在弹出的系统提供的形状中选择需要的形状样式,

    Alt
    Alt
    Alt
    AltAltAlt
    Alt

    2.10 修改首字下沉

    选择“报告人介绍”段落下面的文字,然后单击“插入”选项卡→“文本”组→“首字下沉”的“下沉”按钮。

    Alt
    Alt

    2.11 修改照片

    在原文档的图片上双击鼠标左键,打开“图片格式”选项卡,然后单击“图片格式”选项卡→“调整”组→“更改图片”按钮,选择考生文件夹下的Pic 2.jpg照片即可。更改图片样式-金属椭圆,自动换行-四周环绕。

    Alt
    Alt
    Alt
    Alt
    Alt
    At

    展开全文
  • word 内嵌自动编号

    千次阅读 2016-09-13 20:52:58
    博客中我讲解了如何从零开始规范得构建word模板,规范的使用方式可以使word作为办公软件的效率大大提升。本文重点想更深入地探讨一下自动编号相关的功能,讲解一下大多数人可能从来没有使用过的高级功能 —— ...

    word中,各种列表编号、图表序号、样式格式等等问题,我已经在 word常规模板设置 中做了比较详细的叙述。博客中我讲解了如何从零开始规范得构建一个word模板,规范的使用方式可以使word作为办公软件的效率大大提升。本文重点想更深入地探讨一下自动编号相关的功能,讲解一下大多数人可能从来没有使用过的高级功能 —— 内嵌编号(inline numbering)。


    说明:本文中的截图使用 Mac 版的 Word 2016, 文中涉及的操作在Windows下的Word 2010及以上版本基本是一致的。

    功能需求

    如果按照 word常规模板设置 中的步骤,平时写文档时候的需求就基本能够满足了。
    但是,凡事没有绝对,看一下这个案例:

    文本来自Francis Scott Key Fitzgerald《了不起的盖茨比》

    现在,你需要像下面这样对文本中的每段话进行编号,以便文章的修订者排列这些句子的顺序,以及必要的时候进行增加、删除等操作。

    这里写图片描述

    通常,大家都是一行一行读文本,然后在每一句前面手动加上编号。文本比较短的时候,完全没有问题,反正编号也不多。想象一下,现在文本里面有200个句子……再想象一下,当你终于完成任务时,发现自己漏掉了编号为50的句子……

    再来说一个案例:

    这里写图片描述

    想象一下,领导说,把第3个附件去掉……

    接到这样的任务,我想大家的内心都是崩溃的,我真心祝愿大家永远不要碰上这样的事情。
    不过,话说回来,万一要是遇上了怎么办呢?
    再说,虽然我这里的案例比较极端,但我想在写文档的时候或多或少会遇上类似的自动编号需求,那么,能不能插入一个数字,让它像列表一样自动进行编号呢?

    如何实现

    快速回想一下对 word 编号功能已有的知识,在“开始”面板里面,提供了三种常用的编号:

    这里写图片描述

    左起第一个是项目符号,用于无序列表。第二个是列表编号,包含各种格式的自动编号项。第三个是多级列表,主要用于对文章不同级别的标题编号。

    如果动手实践一下,很快就会发现,这三个编号都是针对段落的。也就是说,它们的列表项都对应着单独的段落,对于想要在文本中间插入这些列表项是行不通的。

    要完成这样的任务,就必须要介绍一个 Word 的高级功能 ——“域”。它就像是一段格式化输出的代码,可以在不同的要求下输出不同的格式和内容。

    对于程序员来说,对各种自动编号是有强迫症的,一定要它自己依次自加递增。

    “域”对于大家来说可能既熟悉,又陌生。好像很多地方都有提到过“域”这个名词,但是究竟可以用它来做什么,可能很多人并不清楚。

    我们以一个例子来介绍一下“域”。

    首先,我们在页面空白的地方,插入两个题注:

    这里写图片描述

    这里写图片描述

    在 Mac 下,这个编号会显示为灰色,而在Windows下,当它的文字被选中的时候,也会显示为灰色。

    这时,我们选中这两个数字,并单击鼠标右键,选择“切换域代码”:

    这里写图片描述

    就会看到,编号的数字,变成了下面这个样子的文本:

    这里写图片描述

    如果再次选择“切换域代码”,又会显示为刚才的数字文本。实际上,这就是“域”,它由格式化的代码来控制文本的显示。上面的例子只是“域”使用的一个简单的情况,事实上,Word 中列表、页码、脚注、目录等等,都是通过“域”功能来实现的,这是一个非常强大的功能。

    “域”代码块插入的快捷键是“ctrl(cmd) + F9”,会插入一个花括号包围的区域,同样以灰色底纹的方式显示。当然,更常用的方式应该是通过“插入”面板下的“域”按钮,来插入一个域。

    这里写图片描述

    选择“插入域”的按钮后,会弹出一个对话框。(这里 Mac 下的显示方式与 Windows 略有区别,不过功能都是一致的

    这里写图片描述

    可以看到,在类别选项框中,有很多可供选择的域代码类。

    本文中,我们主要讲解内嵌编号功能,因此只重点介绍 LISTNUM 和 SEQ 关键字,其余功能大家可以自己测试摸索。

    LISTNUM

    我们首先以第一个案例为示范。

    这里写图片描述

    打开“插入域”对话框后,选择“编号”类别,然后在“域名”列表中,选择 LISTNUM 关键字,并打开它的“选项”窗口。(再次提示,这里 Mac 下的显示方式与 Windows 略有区别,不过功能都是一致的

    这里写图片描述

    从这个关键字的名称就很容易知道,它就是用来为列表编号的。它主要有两个选项类可供配置,分别是“域专用开关”和“列表名称”。“域专用开关”下面有两个选项,分别是:

    • “\l”:列表层次(level)
    • “\s”:起始编号(start)

    而在“列表名称”当中,有三个选项,分别表示不同的编号显示类型:

    • LegalDefault
    • NumberDefault
    • OutlineDefault

    我们用一个列表来表示这些选项的作用:

    这里写图片描述
    *图片来自《(Automatic) Numbering Using Fields in Word 2010 | Just Another Microsoft Office Blog》

    现在,我们来具体说说这个 LISTNUM 域代码怎么使用。

    根据上面所列的选项与对应的样式,我们这里需要“1.”这样的形式,因此,level 应该设置为 1 级,“列表名称”设置为“LegalDefault”,(起始编号“\s”这里不必使用,默认是从1开始编号的),如下图:

    这里写图片描述

    点击“确定”后,就插入到文本中了。

    这里写图片描述

    同样,选中后单击“切换域代码”,会显示刚刚插入的域代码块。

    这里写图片描述

    再次,单击“切换域代码”,将它切回数字文本的状态,然后,选中这个数字,“Ctrl(cmd)+C”复制,并选择下一个句子的开头,“Ctrl(cmd)+V”粘贴,就会看到,这个编号自动变成了“2.”。

    这里写图片描述

    剩下的不用我说了,就全部复制到合适的位置就好了。

    这样有一个好处,当我们对中间的编号做了增加,或者删除以后,这些编号会自动更新。或者我们也可以选择全部编号,鼠标右键,选择“更新域”,或者在 Windows 上可以按“F9”快捷键,来实现手动更新。

    这里写图片描述

    如果这样就完了的话,第一次编号时,我们还是要对每个句子手动的“Ctrl(cmd)+V”粘贴,仍然很麻烦(程序员坚决不做机械重复的劳动)。

    针对这个案例,讲一个快速简便的方法,那就是使用“查找和替换”功能,查找每一个句号的节点,然后在句号后面加上域代码字符串。唯一需要注意的是要将域代码替换上去,一定要先将域代码复制到剪贴板,然后在替换选项里选择“剪贴板内容”。

    这里写图片描述

    最后,再将段落末尾的编号都去掉,更新一下所有编号域就好了。

    这里写图片描述

    再想一想文章开始时描述的,现在文本里面有200个句子……当你终于完成任务时,发现自己漏掉了编号为50的句子……
    如果用替换功能,根本不会漏掉。真是漏掉了一个,单独粘贴域代码上去,全选,然后按“F9”快捷键更新域,编号就全部自动更新了。是不是免去了很多繁琐的机械重复。

    SEQ

    然后,我们再来说说本文开始举例的第二个案例。有了上一节的铺垫,这里的介绍会相对概略一些。

    这里写图片描述

    由于这个里面,编号的样式后面不应该有“.”这样的符号,这种情况下使用 LISTNUM 是不行的。

    SEQ 关键字是由“sequence”来的,意思是序列。实际上,在上文中,我们“插入题注”后,将题注转换为域代码,就已经见到过这个关键字了。

    这里写图片描述

    同样,我们选择插入“SEQ”关键字,单击“选项”按钮,弹出“域选项”对话框。可以看到 SEQ 支持的格式有很多,包括数字的样式也都可以设置。

    这里写图片描述

    在“域专用开关”里面类似 LISTNUM 的开关,也有一些专用的属性,选择每个属性下面都会出现文字介绍。用法与 LISTNUM 也是类似的,我们就不赘述了。

    这里写图片描述

    实际上,大多数情况下使用 SEQ 关键字默认的属性配置就可以了,对我们这里的案例来说,域代码非常简单:

    这里写图片描述

    这里在 SEQ 后面跟了 “附件”字符串,实际上,用别的字符串也可以,只是为了区分不同的序列,比如“图”序列、“表”序列等等,它们的编号是分开的。

    这里写图片描述

    下面的操作我想就不用我啰嗦了,原则就是能够替换就替换,不好替换光用复制粘贴也行,编号做好了以后,后期即使要修改也完全没有压力。

    总结

    本文重点针对 Word 的自动编号“域”代码,实现了内嵌编号的功能。主要采用了 LISTNUM 和 SEQ 关键字,并对它们的使用方法进行了大致的讲解。当然,Word 支持的关键字是非常多的,可以实现非常多的功能,提高工作的效率,如果有时间的话,建议大家实际操作了解一下。

    再次陈述我的观点,Word 不仅仅是一个文本编辑器,希望大家都能够好好利用它。

    感谢阅读,如有错误,望不吝指正!

    展开全文
  • 因此,我写了个文章集合,供大家参考,整篇文章已经整理成册(如下图所示),如有需求,请私聊! 目录   章节:python使用openpyxl操作excel     1、openpyxl库介绍     2、python怎么打开及读取表格...

    本文是鉴于有些粉丝的工作需求,有时候需要遇到这些文件的处理。因此,我写了一个文章集合,供大家参考,整篇文章已经整理成册(如下图所示)。由于文档获取人数太多,大家如有需求,请关注公众号:【数据分析与统计学之美】,回复关键词:【自动化文档】!
    在这里插入图片描述

    目录

      章节一:python使用openpyxl操作excel
        1、openpyxl库介绍
        2、python怎么打开及读取表格内容?
           1)Excel表格述语
           2)打开Excel表格并获取表格名称
           3)通过sheet名称获取表格
           4)获取表格的尺寸大小
           5)获取表格内某个格子的数据
             ① sheet[“A1”]方式
             ② sheet.cell(row=, column=)方式
           6)获取某个格子的行数、列数、坐标
           7)获取一系列格子
             ① sheet[]方式
             ② .iter_rows()方式
             ③ sheet.rows()
        3、python如何向excel中写入某些内容?
           1)修改表格中的内容
             ① 向某个格子中写入内容并保存
             ② .append():向表格中插入行数据
             ③ 在python中使用excel函数公式(很有用)
             ④ .insert_cols()和.insert_rows():插入空行和空列
             ⑤ .delete_rows()和.delete_cols():删除行和列
             ⑥ .move_range():移动格子
             ⑦ .create_sheet():创建新的sheet表格
             ⑧ .remove():删除某个sheet表
             ⑨ .copy_worksheet():复制一个sheet表到另外一张excel表
             ⑩ sheet.title:修改sheet表的名称
             ⑪ 创建新的excel表格文件
             ⑫ sheet.freeze_panes:冻结窗口
             ⑬ sheet.auto_filter.ref:给表格添加“筛选器”
        4、批量调整字体和样式
           1)修改字体样式
           2)获取表格中格子的字体样式
           3)设置对齐样式
           4)设置边框样式
           5)设置填充样式
           6)设置行高和列宽
           7)合并单元格
      章节二:python使用PyPDF2和pdfplumber操作pdf
        1、PyPDF2和pdfplumber库介绍
        2、python提取PDF文字内容
           1)利用pdfplumber提取文字
           2)利用pdfplumber提取表格并写入excel
        3、PDF合并及页面的排序和旋转
           1)分割及合并pdf
             ① 合并pdf
             ② 拆分pdf
           2)旋转及排序pdf
             ① 旋转pdf
             ② 排序pdf
        4、pdf批量加水印及加密、解密
           1)批量加水印
           2)批量加密、解密
             ① 加密pdf
             ② 解密pdf并保存为未加密的pdf
      章节三:python使用python-docx操作word
        1、python-docx库介绍
        2、Python读取Word文档内容
           1)word文档结构介绍
           2)python-docx提取文字和文字块儿
             ① python-docx提取文字
             ② python-docx提取文字块儿
           3)利用Python向Word文档写入内容
             ① 添加段落
             ② 添加文字块儿
             ③ 添加一个分页
             ④ 添加图片
             ⑤ 添加表格
             ⑥ 提取word表格,并保存在excel中(很重要)
        3、利用Python调整Word文档样式
           1)修改文字字体样式
           2)修改段落样式
             ① 对齐样式
             ② 行间距调整
             ③ 段前与段后间距

    章节一:python使用openpyxl操作excel

    1、openpyxl库介绍

    • openpyxl最好用的python操作excel表格库,不接受反驳;
    • openpyxl官网链接:openpyxl官网
    • openpyxl只支持【.xlsx / .xlsm / .xltx / .xltm】格式的文件;

    2、python怎么打开及读取表格内容?

    1)Excel表格述语

    这里需要大家仔细查看图中的每一项内容,知道什么是“行(row)、列(column)”?什么是“格子(cell)”?什么是“sheet表”?
    在这里插入图片描述

    2)打开Excel表格并获取表格名称
    from openpyxl import load_workbook
    workbook = load_workbook(filename = "test.xlsx")
    workbook.sheetnames
    

    结果如下:
    在这里插入图片描述

    3)通过sheet名称获取表格
    from openpyxl import load_workbook
    workbook = load_workbook(filename = "test.xlsx")
    workbook.sheetnames
    sheet = workbook["Sheet1"]
    print(sheet)
    

    结果如下:
    在这里插入图片描述

    4)获取表格的尺寸大小
    • 这里所说的尺寸大小,指的是excel表格中的数据有几行几列,针对的是不同的sheet而言。
    sheet.dimensions
    

    结果如下:
    在这里插入图片描述

    5)获取表格内某个格子的数据
    ① sheet[“A1”]方式
    workbook = load_workbook(filename = "test.xlsx")
    sheet = workbook.active
    print(sheet)
    cell1 = sheet["A1"]
    cell2 = sheet["C11"]
    print(cell1.value, cell2.value)
    
    """
    workbook.active 打开激活的表格;
    sheet["A1"] 获取A1格子的数据;
    cell.value 获取格子中的值;
    """
    

    结果如下:
    在这里插入图片描述

    ② sheet.cell(row=, column=)方式
    • 这种方式更简单,大家可以对比这两种方式;
    workbook = load_workbook(filename = "test.xlsx")
    sheet = workbook.active
    print(sheet)
    cell1 = sheet.cell(row = 1,column = 1)
    cell2 = sheet.cell(row = 11,column = 3)
    print(cell1.value, cell2.value)
    

    结果如下:
    在这里插入图片描述

    6)获取某个格子的行数、列数、坐标
    workbook = load_workbook(filename = "test.xlsx")
    sheet = workbook.active
    print(sheet)
    cell1 = sheet["A1"]
    cell2 = sheet["C11"]
    print(cell1.value, cell1.row, cell1.column, cell1.coordinate)
    print(cell2.value, cell2.row, cell2.column, cell2.coordinate)
    """
    .row 获取某个格子的行数;
    .columns 获取某个格子的列数;
    .corordinate 获取某个格子的坐标;
    """
    

    结果如下:
    在这里插入图片描述

    7)获取一系列格子
    ① sheet[]方式
    workbook = load_workbook(filename = "test.xlsx")
    sheet = workbook.active
    print(sheet)
    # 获取A1:C2区域的值
    cell = sheet["A1:C2"]
    print(cell)
    for i in cell:
        for j in i:
            print(j.value)
    

    结果如下:
    在这里插入图片描述
    特别的:如果我们只想获取“A列”,或者获取“A-C列”,可以采取如下方式:

    sheet["A"]    --- 获取A列的数据
    sheet["A:C"]    --- 获取A,B,C三列的数据
    sheet[5]   --- 只获取第5行的数据
    
    ② .iter_rows()方式
    • 当然有.iter_rows()方式,肯定也会有.iter_cols()方式,只不过一个是按行读取,一个是按列读取。
    workbook = load_workbook(filename = "test.xlsx")
    sheet = workbook.active
    print(sheet)
    # 按行获取值
    for i in sheet.iter_rows(min_row=2, max_row=5, min_col=1, max_col=2):
        for j in i:
            print(j.value)
    # 按列获取值
    for i in sheet.iter_cols(min_row=2, max_row=5, min_col=1, max_col=2):
        for j in i:
            print(j.value)      
    

    结果如下:
    在这里插入图片描述

    ③ sheet.rows()
    • 帮助我们获取所有行
    workbook = load_workbook(filename = "test.xlsx")
    sheet = workbook.active
    print(sheet)
    for i in sheet.rows:
            print(i)
    

    结果如下:
    在这里插入图片描述

    3、python如何向excel中写入某些内容?

    1)修改表格中的内容
    ① 向某个格子中写入内容并保存
    workbook = load_workbook(filename = "test.xlsx")
    sheet = workbook.active
    print(sheet)
    sheet["A1"] = "哈喽" # 这句代码也可以改为cell = sheet["A1"] cell.value = "哈喽"
    workbook.save(filename = "哈喽.xlsx")
    """
    注意:我们将“A1”单元格的数据改为了“哈喽”,并另存为了“哈喽.xlsx”文件。
    如果我们保存的时候,不修改表名,相当于直接修改源文件;
    """
    

    结果如下:
    在这里插入图片描述

    ② .append():向表格中插入行数据
    • .append()方式:会在表格已有的数据后面,增添这些数(按行插入);
    • 这个操作很有用,爬虫得到的数据,可以使用该方式保存成Excel文件;
    workbook = load_workbook(filename = "test.xlsx")
    sheet = workbook.active
    print(sheet)
    data = [
        ["唐僧","男","180cm"],
        ["孙悟空","男","188cm"],
        ["猪八戒","男","175cm"],
        ["沙僧","男","176cm"],
    ]
    for row in data:
        sheet.append(row)
    workbook.save(filename = "test.xlsx")
    

    结果如下:
    在这里插入图片描述

    ③ 在python中使用excel函数公式(很有用)
    # 这是我们在excel中输入的公式
    =IF(RIGHT(C2,2)="cm",C2,SUBSTITUTE(C2,"m","")*100&"cm")
    # 那么,在python中怎么插入excel公式呢?
    workbook = load_workbook(filename = "test.xlsx")
    sheet = workbook.active
    print(sheet)
    sheet["D1"] = "标准身高"
    for i in range(2,16):
        sheet["D{}".format(i)] = '=IF(RIGHT(C{},2)="cm",C{},SUBSTITUTE(C{},"m","")*100&"cm")'.format(i,i,i)
    workbook.save(filename = "test.xlsx")
    

    结果如下:
    在这里插入图片描述
    此时,你肯定会好奇,python究竟支持写哪些“excel函数公式”呢?我们可以使用如下操作查看一下。

    import openpyxl
    from openpyxl.utils import FORMULAE
    print(FORMULAE)
    

    结果如下:
    在这里插入图片描述

    ④ .insert_cols()和.insert_rows():插入空行和空列
    • .insert_cols(idx=数字编号, amount=要插入的列数),插入的位置是在idx列数的左侧插入;
    • .insert_rows(idx=数字编号, amount=要插入的行数),插入的行数是在idx行数的下方插入;
    workbook = load_workbook(filename = "test.xlsx")
    sheet = workbook.active
    print(sheet)
    sheet.insert_cols(idx=4,amount=2)
    sheet.insert_rows(idx=5,amount=4)
    workbook.save(filename = "test.xlsx")
    

    结果如下:
    在这里插入图片描述

    ⑤ .delete_rows()和.delete_cols():删除行和列
    • .delete_rows(idx=数字编号, amount=要删除的行数)
    • .delete_cols(idx=数字编号, amount=要删除的列数)
    workbook = load_workbook(filename = "test.xlsx")
    sheet = workbook.active
    print(sheet)
    # 删除第一列,第一行
    sheet.delete_cols(idx=1)
    sheet.delete_rows(idx=1)
    workbook.save(filename = "test.xlsx")
    

    结果如下:
    在这里插入图片描述

    ⑥ .move_range():移动格子
    • .move_range(“数据区域”,rows=,cols=):正整数为向下或向右、负整数为向左或向上;
    # 向左移动两列,向下移动两行
    sheet.move_range("C1:D4",rows=2,cols=-1)
    

    演示效果如下:
    在这里插入图片描述

    ⑦ .create_sheet():创建新的sheet表格
    • .create_sheet(“新的sheet名”):创建一个新的sheet表;
    workbook = load_workbook(filename = "test.xlsx")
    sheet = workbook.active
    print(sheet)
    workbook.create_sheet("我是一个新的sheet")
    print(workbook.sheetnames)
    workbook.save(filename = "test.xlsx")
    

    结果如下:
    在这里插入图片描述

    ⑧ .remove():删除某个sheet表
    • .remove(“sheet名”):删除某个sheet表;
    workbook = load_workbook(filename = "test.xlsx")
    sheet = workbook.active
    print(workbook.sheetnames)
    # 这个相当于激活的这个sheet表,激活状态下,才可以操作;
    sheet = workbook['我是一个新的sheet']  
    print(sheet)
    workbook.remove(sheet)
    print(workbook.sheetnames)
    workbook.save(filename = "test.xlsx")
    

    结果如下:
    在这里插入图片描述

    ⑨ .copy_worksheet():复制一个sheet表到另外一张excel表
    • 这个操作的实质,就是复制某个excel表中的sheet表,然后将文件存储到另外一张excel表中;
    workbook = load_workbook(filename = "a.xlsx")
    sheet = workbook.active
    print("a.xlsx中有这几个sheet表",workbook.sheetnames)
    sheet = workbook['姓名']  
    workbook.copy_worksheet(sheet)
    workbook.save(filename = "test.xlsx")
    

    结果如下:
    在这里插入图片描述

    ⑩ sheet.title:修改sheet表的名称
    • .title = “新的sheet表名”
    workbook = load_workbook(filename = "a.xlsx")
    sheet = workbook.active
    print(sheet)
    sheet.title = "我是修改后的sheet名"
    print(sheet)
    

    结果如下:
    在这里插入图片描述

    ⑪ 创建新的excel表格文件
    from openpyxl import Workbook
    
    workbook = Workbook()
    sheet = workbook.active
    sheet.title = "表格1"
    workbook.save(filename = "新建的excel表格")
    

    结果如下:
    在这里插入图片描述

    ⑫ sheet.freeze_panes:冻结窗口
    • .freeze_panes = “单元格”
    workbook = load_workbook(filename = "花园.xlsx")
    sheet = workbook.active
    print(sheet)
    sheet.freeze_panes = "C3"
    workbook.save(filename = "花园.xlsx")
    """
    冻结窗口以后,你可以打开源文件,进行检验;
    """
    

    结果如下:
    在这里插入图片描述

    ⑬ sheet.auto_filter.ref:给表格添加“筛选器”
    • .auto_filter.ref = sheet.dimension 给所有字段添加筛选器;
    • .auto_filter.ref = “A1” 给A1这个格子添加“筛选器”,就是给第一列添加“筛选器”;
    workbook = load_workbook(filename = "花园.xlsx")
    sheet = workbook.active
    print(sheet)
    sheet.auto_filter.ref = sheet["A1"]
    workbook.save(filename = "花园.xlsx")
    

    结果如下:
    在这里插入图片描述

    4、批量调整字体和样式

    1)修改字体样式
    • Font(name=字体名称,size=字体大小,bold=是否加粗,italic=是否斜体,color=字体颜色)
    from openpyxl.styles import Font
    from openpyxl import load_workbook
    
    workbook = load_workbook(filename="花园.xlsx")
    sheet = workbook.active
    cell = sheet["A1"]
    font = Font(name="微软雅黑",size=20,bold=True,italic=True,color="FF0000")
    cell.font = font
    workbook.save(filename = "花园.xlsx")
    """
    这个color是RGB的16进制表示,自己下去百度学习;
    """
    

    结果如下:
    在这里插入图片描述

    2)获取表格中格子的字体样式
    from openpyxl.styles import Font
    from openpyxl import load_workbook
    
    workbook = load_workbook(filename="花园.xlsx")
    sheet = workbook.active
    cell = sheet["A2"]
    font = cell.font
    print(font.name, font.size, font.bold, font.italic, font.color)
    

    结果如下:
    在这里插入图片描述

    3)设置对齐样式
    • Alignment(horizontal=水平对齐模式,vertical=垂直对齐模式,text_rotation=旋转角度,wrap_text=是否自动换行)
    • 水平对齐:‘distributed’,‘justify’,‘center’,‘leftfill’, ‘centerContinuous’,‘right,‘general’;
    • 垂直对齐:‘bottom’,‘distributed’,‘justify’,‘center’,‘top’;
    from openpyxl.styles import Alignment
    from openpyxl import load_workbook
    
    workbook = load_workbook(filename="花园.xlsx")
    sheet = workbook.active
    cell = sheet["A1"]
    alignment = Alignment(horizontal="center",vertical="center",text_rotation=45,wrap_text=True)
    cell.alignment = alignment
    workbook.save(filename = "花园.xlsx")
    

    结果如下:
    在这里插入图片描述

    4)设置边框样式
    • Side(style=边线样式,color=边线颜色)
    • Border(left=左边线样式,right=右边线样式,top=上边线样式,bottom=下边线样式)
    • style参数的种类: 'double, ‘mediumDashDotDot’, ‘slantDashDot’,‘dashDotDot’,‘dotted’,‘hair’, 'mediumDashed, ‘dashed’, ‘dashDot’, ‘thin’,‘mediumDashDot’,‘medium’, 'thick’from openpyxl.styles import Side,Borderfrom
    openpyxl import load_workbook
    
    workbook = load_workbook(filename="花园.xlsx")
    sheet = workbook.active
    cell = sheet["D6"]
    side1 = Side(style="thin",color="FF0000")
    side2 = Side(style="thick",color="FFFF0000")
    border = Border(left=side1,right=side1,top=side2,bottom=side2)
    cell.border = border
    workbook.save(filename = "花园.xlsx")
    

    结果如下:
    在这里插入图片描述

    5)设置填充样式
    • PatternFill(fill_type=填充样式,fgColor=填充颜色)
    • GradientFill(stop=(渐变颜色1,渐变颜色2……))
    from openpyxl.styles import PatternFill,GradientFill
    from openpyxl import load_workbook
    
    workbook = load_workbook(filename="花园.xlsx")
    sheet = workbook.active
    cell_b9 = sheet["B9"]
    pattern_fill = PatternFill(fill_type="solid",fgColor="99ccff")
    cell_b9.fill = pattern_fill
    cell_b10 = sheet["B10"]
    gradient_fill = GradientFill(stop=("FFFFFF","99ccff","000000"))
    cell_b10.fill = gradient_fill
    workbook.save(filename = "花园.xlsx")
    

    结果如下:
    在这里插入图片描述

    6)设置行高和列宽
    • .row_dimensions[行编号].height = 行高
    • .column_dimensions[列编号].width = 列宽
    workbook = load_workbook(filename="花园.xlsx")
    sheet = workbook.active
    # 设置第1行的高度
    sheet.row_dimensions[1].height = 50
    # 设置B列的宽度
    sheet.column_dimensions["B"].width = 20
    workbook.save(filename = "花园.xlsx")
    """
    sheet.row_dimensions.height = 50
    sheet.column_dimensions.width = 30
    这两句代码,是将整个表的行高设置为50,列宽设置为30;
    """
    

    结果如下:
    在这里插入图片描述

    7)合并单元格
    • .merge_cells(待合并的格子编号)
    • .merge_cells(start_row=起始行号,start_column=起始列号,end_row=结束行号,end_column=结束列号)
    workbook = load_workbook(filename="花园.xlsx")
    sheet = workbook.active
    sheet.merge_cells("C1:D2")
    sheet.merge_cells(start_row=7,start_column=1,end_row=8,end_column=3)
    workbook.save(filename = "花园.xlsx")
    

    结果如下:
    在这里插入图片描述
    当然,也有“取消合并单元格”,用法一致。

    • .unmerge_cells(待合并的格子编号)
    • .unmerge_cells(start_row=起始行号,start_column=起始列号,end_row=结束行号,end_column=结束列号)

    章节二:python使用PyPDF2和pdfplumber操作pdf

    1、PyPDF2和pdfplumber库介绍

    • PyPDF2官网: PyPDF2官网 ,可以更好的读取、写入、分割、合并PDF文件;
    • pdfplumber官网:pdfplumber官网,可以更好地读取PDF文件内容和提取PDF中的表格;
    • 这两个库不属于python标准库,都需要单独安装;

    2、python提取PDF文字内容

    1)利用pdfplumber提取文字
    import PyPDF2
    import pdfplumber
    
    with pdfplumber.open("餐饮企业综合分析.pdf") as p:
        page = p.pages[2]
        print(page.extract_text())
    

    结果如下:
    在这里插入图片描述

    2)利用pdfplumber提取表格并写入excel
    • extract_table():如果一页有一个表格;
    • extract_tables():如果一页有多个表格;
    import PyPDF2
    import pdfplumber
    from openpyxl import Workbook
    
    with pdfplumber.open("餐饮企业综合分析.pdf") as p:
        page = p.pages[4]
        table = page.extract_table()
        print(table)
        
        workbook = Workbook()
        sheet = workbook.active
        for row in table:
            if not "".join() == ""
                sheet.append(row)
        workbook.save(filename = "新pdf.xlsx")
    

    结果如下:
    在这里插入图片描述
    缺陷:可以看到,这里提取出来的表格有很多空行,怎么去掉这些空行呢?
    判断:将列表中每个元素都连接成一个字符串,如果还是一个空字符串那么肯定就是空行。

    import PyPDF2
    import pdfplumber
    from openpyxl import Workbook
    
    with pdfplumber.open("餐饮企业综合分析.pdf") as p:
        page = p.pages[4]
        table = page.extract_table()
        print(table)
        
        workbook = Workbook()
        sheet = workbook.active
        for row in table:
            if not "".join([str(i) for i in row]) == "":
                sheet.append(row)
        workbook.save(filename = "新pdf.xlsx")
    

    结果如下:
    在这里插入图片描述

    3、PDF合并及页面的排序和旋转

    1)分割及合并pdf
    ① 合并pdf

    首先,我们有如下几个文件,可以发现这里共有三个PDF文件需要我们合并。同时可以发现他们的文件名都是有规律的(如果文件名,没有先后顺序,我们合并起来就没有意义了。)
    在这里插入图片描述
    代码如下:

    from PyPDF2 import PdfFileReader, PdfFileWriter
    
    pdf_writer = PdfFileWriter()
    for i in range(1,len(os.listdir(r"G:\6Tipdm\7python办公自动化\concat_pdf"))+1):
        print(i*50+1,(i+1)*50)
        pdf_reader = PdfFileReader("G:\\6Tipdm\\7python办公自动化\\concat_pdf\{}-{}.pdf".format(i*50+1,(i+1)*50))
        for page in range(pdf_reader.getNumPages()):
            pdf_writer.addPage(pdf_reader.getPage(page))
            
    with open("G:\\6Tipdm\\7python办公自动化\\concat_pdf\merge.pdf", "wb") as out:
        pdf_writer.write(out)
    

    结果如下:
    在这里插入图片描述

    ② 拆分pdf

    这里有一个“时间序列.pdf”的文件,共3页,我们将其每一页存为一个PDF文件。
    在这里插入图片描述
    代码如下:

    from PyPDF2 import PdfFileReader, PdfFileWriter
    
    pdf_reader = PdfFileReader(r"G:\6Tipdm\7python办公自动化\concat_pdf\时间序列.pdf")
    for page in range(pdf_reader.getNumPages()):
        pdf_writer = PdfFileWriter()
        pdf_writer.addPage(pdf_reader.getPage(page))
        with open(f"G:\\6Tipdm\\7python办公自动化\\concat_pdf\\{page}.pdf", "wb") as out:
            pdf_writer.write(out)
    

    结果如下:
    在这里插入图片描述

    2)旋转及排序pdf
    ① 旋转pdf
    • .rotateClockwise(90的倍数):顺时针旋转90度
    • .rotateCounterClockwise(90的倍数):逆时针旋转90度
    from PyPDF2 import PdfFileReader, PdfFileWriter
    
    pdf_reader = PdfFileReader(r"G:\6Tipdm\7python办公自动化\concat_pdf\时间序列.pdf")
    pdf_writer = PdfFileWriter()
    for page in range(pdf_reader.getNumPages()):
        if page % 2 == 0:
            rotation_page = pdf_reader.getPage(page).rotateCounterClockwise(90)
        else:
            rotation_page = pdf_reader.getPage(page).rotateClockwise(90)
        pdf_writer.addPage(rotation_page)
        with open("G:\\6Tipdm\\7python办公自动化\\concat_pdf\\旋转.pdf", "wb") as out:
            pdf_writer.write(out)
    """
    上述代码中,我们循环遍历了这个pdf,对于偶数页我们逆时针旋转90°,对于奇数页我们顺时针旋转90°;
    注意:旋转的角度只能是90的倍数;
    """
    

    其中一页效果展示如下:
    在这里插入图片描述

    ② 排序pdf

    需求:我们有一个PDF文件,我们需要倒序排列,应该怎么做呢?
    首先,我们来看python中,怎么倒叙打印一串数字,如下图所示。
    在这里插入图片描述
    那么倒序排列一个pdf,思路同上,代码如下:

    from PyPDF2 import PdfFileReader, PdfFileWriter
    
    pdf_reader = PdfFileReader(r"G:\6Tipdm\7python办公自动化\concat_pdf\时间序列.pdf")
    pdf_writer = PdfFileWriter()
    for page in range(pdf_reader.getNumPages()-1, -1, -1):
        pdf_writer.addPage(pdf_reader.getPage(page))
    with open("G:\\6Tipdm\\7python办公自动化\\concat_pdf\\倒序.pdf", "wb") as out:
            pdf_writer.write(out)
    

    结果如下:
    在这里插入图片描述

    4、pdf批量加水印及加密、解密

    1)批量加水印
    from PyPDF2 import PdfFileReader, PdfFileWriter
    from copy import copy
    
    water = PdfFileReader(r"G:\6Tipdm\7python办公自动化\concat_pdf\水印.pdf")
    water_page = water.getPage(0)
    
    pdf_reader = PdfFileReader(r"G:\6Tipdm\7python办公自动化\concat_pdf\aa.pdf")
    pdf_writer = PdfFileWriter()
    
    for page in range(pdf_reader.getNumPages()):
        my_page = pdf_reader.getPage(page)
        new_page = copy(water_page)
        new_page.mergePage(my_page)
        pdf_writer.addPage(new_page)
    with open("G:\\6Tipdm\\7python办公自动化\\concat_pdf\\添加水印后的aa.pdf", "wb") as out:
            pdf_writer.write(out)  
    """
    这里有一点需要注意:进行pdf合并的时候,我们希望“水印”在下面,文字在上面,因此是“水印”.mergePage(“图片页”)
    """
    

    结果如下:
    在这里插入图片描述

    2)批量加密、解密
    • 这里所说的“解密”,是在知道pdf的密码下,去打开pdf,而不是暴力破解;
    ① 加密pdf
    from PyPDF2 import PdfFileReader, PdfFileWriter
    
    pdf_reader = PdfFileReader(r"G:\6Tipdm\7python办公自动化\concat_pdf\时间序列.pdf")
    pdf_writer = PdfFileWriter()
    for page in range(pdf_reader.getNumPages()):
        pdf_writer.addPage(pdf_reader.getPage(page))
    # 添加密码
    pdf_writer.encrypt("a123456")
    with open("G:\\6Tipdm\\7python办公自动化\\concat_pdf\\时间序列.pdf", "wb") as out:
            pdf_writer.write(out)  
    

    结果如下:
    在这里插入图片描述

    ② 解密pdf并保存为未加密的pdf
    from PyPDF2 import PdfFileReader, PdfFileWriter
    
    pdf_reader = PdfFileReader(r"G:\6Tipdm\7python办公自动化\concat_pdf\时间序列.pdf")
    # 解密pdf
    pdf_reader.decrypt("a123456")
    pdf_writer = PdfFileWriter()
    for page in range(pdf_reader.getNumPages()):
        pdf_writer.addPage(pdf_reader.getPage(page))
    with open("G:\\6Tipdm\\7python办公自动化\\concat_pdf\\未加密的时间序列.pdf", "wb") as out:
            pdf_writer.write(out)  
    

    结果如下:
    在这里插入图片描述

    章节三:python使用python-docx操作word

    1、python-docx库介绍

    • 该模块儿可以创建、修改Word(.docx)文件;
    • 此模块儿不属于python标准库,需要单独安装;
    • python-docx使用官网: python-docx官网
    • 我们在安装此模块儿使用的是pip install python-docx,但是在导入的时候是import docx;

    2、Python读取Word文档内容

    • 注意:每进行一个操作,必须保存一下,否则等于白做;
    1)word文档结构介绍

    在这里插入图片描述

    2)python-docx提取文字和文字块儿
    ① python-docx提取文字

    有一个这样的docx文件,我们想要提取其中的文字,应该怎么做?
    在这里插入图片描述
    代码如下:

    from docx import Document
    
    doc = Document(r"G:\6Tipdm\7python办公自动化\concat_word\test1.docx")
    print(doc.paragraphs)
    for paragraph in doc.paragraphs:
        print(paragraph.text)
    

    结果如下:
    在这里插入图片描述

    ② python-docx提取文字块儿
    from docx import Document
    
    doc = Document(r"G:\6Tipdm\7python办公自动化\concat_word\test1.docx")
    print(doc.paragraphs)
    paragraph = doc.paragraphs[0]
    runs = paragraph.runs
    print(runs)
    for run in paragraph.runs:
        print(run.text)
    ------------------------------
    paragraph = doc.paragraphs[1]
    runs = paragraph.runs
    print(runs)
    for run in paragraph.runs:
        print(run.text)
    

    结果如下:
    在这里插入图片描述

    3)利用Python向Word文档写入内容
    ① 添加段落
    from docx import Document
    
    doc = Document(r"G:\6Tipdm\7python办公自动化\concat_word\test1.docx")
    # print(doc.add_heading("一级标题", level=1))   添加一级标题的时候出错,还没有解决!
    paragraph1 = doc.add_paragraph("这是一个段落")
    paragraph2 = doc.add_paragraph("这是第二个段落")
    doc.save(r"G:\6Tipdm\7python办公自动化\concat_word\test1.docx") 
    """
    添加段落的时候,赋值给一个变量,方便我们后面进行格式调整;
    """
    

    结果如下:
    在这里插入图片描述

    ② 添加文字块儿
    from docx import Document
    
    doc = Document(r"G:\6Tipdm\7python办公自动化\concat_word\test1.docx")
    # 这里相当于输入了一个空格,后面等待着文字输入
    paragraph3 = doc.add_paragraph()
    paragraph3.add_run("我被加粗了文字块儿").bold = True
    paragraph3.add_run(",我是普通文字块儿,")
    paragraph3.add_run("我是斜体文字块儿").italic = True
    doc.save(r"G:\6Tipdm\7python办公自动化\concat_word\test1.docx") 
    

    结果如下:
    在这里插入图片描述

    ③ 添加一个分页
    from docx import Document
    
    doc = Document(r"G:\6Tipdm\7python办公自动化\concat_word\test1.docx")
    doc.add_page_break()
    doc.save(r"G:\6Tipdm\7python办公自动化\concat_word\test1.docx") 
    

    结果如下:
    在这里插入图片描述

    ④ 添加图片
    from docx import Document
    from docx.shared import Cm
    
    doc = Document(r"G:\6Tipdm\7python办公自动化\concat_word\test1.docx")
    doc.add_picture(r"G:\6Tipdm\7python办公自动化\concat_word\sun_wu_kong.png",width=Cm(5),height=Cm(5))
    doc.save(r"G:\6Tipdm\7python办公自动化\concat_word\test1.docx") 
    """
    Cm模块,用于设定图片尺寸大小
    """
    

    结果如下:
    在这里插入图片描述

    ⑤ 添加表格
    from docx import Document
    
    doc = Document(r"G:\6Tipdm\7python办公自动化\concat_word\test1.docx")
    
    list1 = [
        ["姓名","性别","家庭地址"],
        ["唐僧","男","湖北省"],
        ["孙悟空","男","北京市"],
        ["猪八戒","男","广东省"],
        ["沙和尚","男","湖南省"]
    ]
    list2 = [
        ["姓名","性别","家庭地址"],
        ["貂蝉","女","河北省"],
        ["杨贵妃","女","贵州省"],
        ["西施","女","山东省"]
    ]
    
    table1 = doc.add_table(rows=5,cols=3)
    for row in range(5):
        cells = table1.rows[row].cells
        for col in range(3):
            cells[col].text = str(list1[row][col])
    doc.add_paragraph("-----------------------------------------------------------")
    table2 = doc.add_table(rows=4,cols=3)
    for row in range(4):
        cells = table2.rows[row].cells
        for col in range(3):
            cells[col].text = str(list2[row][col])
            
    doc.save(r"G:\6Tipdm\7python办公自动化\concat_word\test1.docx") 
    

    结果如下:
    在这里插入图片描述

    ⑥ 提取word表格,并保存在excel中(很重要)
    from docx import Document
    from openpyxl import Workbook
    
    doc = Document(r"G:\6Tipdm\7python办公自动化\concat_word\test2.docx")
    t0 = doc.tables[0]
    
    workbook = Workbook()
    sheet = workbook.active
    
    for i in range(len(t0.rows)):
        list1 = []
        for j in range(len(t0.columns)):
            list1.append(t0.cell(i,j).text)
        sheet.append(list1)
    workbook.save(filename = r"G:\6Tipdm\7python办公自动化\concat_word\来自word中的表.xlsx")
    

    结果如下:
    在这里插入图片描述

    3、利用Python调整Word文档样式

    1)修改文字字体样式
    from docx import Document
    from docx.shared import Pt,RGBColor 
    from docx.oxml.ns import qn
    
    doc = Document(r"G:\6Tipdm\7python办公自动化\concat_word\test2.docx")
    for paragraph in doc.paragraphs:
        for run in paragraph.runs:
            run.font.bold = True
            run.font.italic = True
            run.font.underline = True
            run.font.strike = True
            run.font.shadow = True
            run.font.size = Pt(18)
            run.font.color.rgb = RGBColor(255,255,0)
            run.font.name = "宋体"
            # 设置像宋体这样的中文字体,必须添加下面2行代码
            r = run._element.rPr.rFonts
            r.set(qn("w:eastAsia"),"宋体")
    doc.save(r"G:\6Tipdm\7python办公自动化\concat_word\_test1.docx")
    

    结果如下:
    在这里插入图片描述

    2)修改段落样式
    ① 对齐样式
    from docx import Document 
    from docx.enum.text import WD_ALIGN_PARAGRAPH
    
    doc = Document(r"G:\6Tipdm\7python办公自动化\concat_word\test1.docx")
    print(doc.paragraphs[0].text)
    doc.paragraphs[0].alignment = WD_ALIGN_PARAGRAPH.CENTER
    # 这里设置的是居中对齐
    doc.save(r"G:\6Tipdm\7python办公自动化\concat_word\对齐样式.docx")
    """
    LEFT,CENTER,RIGHT,JUSTIFY,DISTRIBUTE,JUSTIFY_MED,JUSTIFY_HI,JUSTIFY_LOW,THAI_JUSTIFY
    """
    

    结果如下:
    在这里插入图片描述

    ② 行间距调整
    from docx import Document 
    from docx.enum.text import WD_ALIGN_PARAGRAPH
    
    doc = Document(r"G:\6Tipdm\7python办公自动化\concat_word\test1.docx")
    for paragraph in doc.paragraphs:
        paragraph.paragraph_format.line_spacing = 5.0
    doc.save(r"G:\6Tipdm\7python办公自动化\concat_word\行间距.docx")
    

    结果如下:
    在这里插入图片描述

    ③ 段前与段后间距
    • 这里提供代码,自行下去检验

    在这里插入图片描述

    展开全文
  • 使用Python自动化Microsoft Excel和Word

    千次阅读 多人点赞 2021-04-17 09:19:30
    将Excel与Word集成,无缝生成自动报告 毫无疑问,微软的Excel和Word是公司和非公司领域使用最广泛的两款软件。它们实际上是“工作”的同义词。通常情况下,每周我们都会将两者结合起来,并以某种方式发挥它们的...
  • word添加引用及自动更新的方法

    千次阅读 2013-04-12 16:32:11
    1、将鼠标光标移到文本中需要第一次引用参考文献的位置,点击“插入”菜单 ,选择“引用”,接着选择“脚注和尾注”,弹出“脚注和尾注”窗口; 2、点击“尾注”,选择“文档结尾”,编号格式选择1,2,3,并...
  • Word中图编号如何批量自动更新

    千次阅读 2020-03-07 15:49:59
    近日,想实现word中图的批量自动编号,尝试了一些帖子中的方法(http://www.360doc.com/content/19/0509/07/36832794_834482161.shtml),但有时对自己的word不灵,总结了下适合自己word中图自动编号的方法,如果哪...
  • word贴心自动智能功能

    千次阅读 2012-11-24 16:05:34
    Word提供了一些贴心的自动智能功能,比如,当你在文档中键入“1、”,然后输入内容并按回车键后,Word将在下段的段首自动出现“2、”,这就是Word提供的键入时自动套用编号列表功能。  当使用自动编号列表功能时...
  • 问题阐述 项目做完之后,需要完成篇软件使用说明,为了尽可能让用户...这篇博客详细说明了:如何自动添加标题,级在某章中批量生成图片题注 方法 要根据章节号来自动生成图或表的题注,需要重新定义多级列表...
  • word中删除分节符时页面格式会发生改变 问题:wordword2007、word2010、word2013、word2016等)删除分节符(下一页)以后,...2.注意:在word复制的内容里面包含分节符时,该分节符前的页面格式(纸张大小、纸张方
  • 作者:超级大洋葱806https://tangxing.blog.csdn.net/article/details/108418066环境安装使用Python操作word大部分情况都是写...
  • 如何删除word中的空白

    千次阅读 2011-10-26 09:40:08
    2.可以先在空白上段文字的末尾先点下鼠标,在自动空白下段文字的开头,按住shift的时候再点下鼠标,选择空白,再删除 (验证过好用,以下几条未验证)     3.如果是插入分页符造成的空白,少的话,删除...
  • word 设置指定开始编辑页号

    千次阅读 2011-05-28 11:23:00
    完成封面与目录的编写后,将光标放在第二页的最后行,点击“插入”-“分隔符”,随即便会弹出“分隔符”窗口,勾选其中的“下一页”,点击“确定”按钮,便会在页面中插入分隔符,并跳转到下一页。 将光标定位到...
  • 利用域实现Office Word自动公式编号

    千次阅读 2010-11-24 22:14:00
    利用域实现Office Word自动公式编号,包括公式引用的自动编号
  • WORD文档里每一页的相同位置插入同一图片的宏代码如下: Sub InsPic() Dim pag As Integer For pag = 1 To Selection.Information(wdNumberOfPagesInDocument)  Selection.GoTo what:=wdGoToPage, Name:=...
  • 这是个人事小姐姐请教的问题,每年都会有类似的统计数据到Excel中,并且将数据填入到word表格中的重复工作出现,所以想实现自动化办公。因为python也只是前两年稍微学习了下的语言,但是小姐姐的请求必须完成!! ...
  • 如何优雅的在 Microsoft word中插入代码

    万次阅读 多人点赞 2018-03-11 20:44:29
    或者谷歌搜索syntax highlight code in word documents,检索结果的第一个。如下图:PS. 方法1和2打开的为同一个网站。、步骤1.将你需要插入在word中的代码完整的复制到该网站提示的文本框内,选择你的代码类型,...
  • word中更改共几的数值大小

    千次阅读 2010-10-08 11:45:00
    要只计算你设置范围的页数就要一番设置: 1、菜单栏——视图——页眉和页脚——(出现浮动工具栏)——光标置于页脚——点“插入‘自动图文集’”(第一个按钮)下拉菜单选择“第X 共Y”。 2...
  • 一个Word文档原本好好的,在反复的编辑过程也不知道为什么产生了空白页,它们应该怎么删除呢?这要看由什么导致的空白页,不同的情况...一、Word怎么删除由分节符导致的空白页(一)情况一:分节符导致最后一页为...
  • (单行或多行、多个sheet数据导入到word或者个excel) 本文只有单行批量生成word或者excel,多行的例子后续发布 用VBA解决思路(以批量导入word作为例子) 1、设置word模板(标识要替换的位置) 2、设置...
  • 巧用VBA自动处理Word表格

    千次阅读 2006-06-08 10:45:00
    巧用VBA自动处理Word表格 来源:http://www.52wg.org  Microsoft Word 是大家熟悉的文字处理软件,强大的功能为我们的工作提供了很大的帮助。...下面介绍几则使用VBA编程自动处理Word表格的例子。
  • 解决Word表格在WPS中显示不全(转) Word表格在WPS中会出现显示不全的现象。根据DOC文档中表格的不同(行列分布规则的表格;行列分布不规则的表格),解决此类问题要分两种情况:  、处理行列分布规则的表...
  • .net中C#自动化调用Word的实例总结

    千次阅读 2010-11-02 16:30:00
    建立工程 在ASP.NET里操作Word第一步就是添加COM引用到你的工程里,通过右键点击“解决方案资源管理器”的“引用”,添加引用。选择COM选项卡,添加Microsoft Word 12.0 Object Library
  • 自动化工具word文档批量转html

    千次阅读 2013-06-26 21:16:58
    企业有很多的科室,科室的每个人或多或少都会写一些文档,有些文档领导需要浏览,解决的办法是将编辑的文档打印出来,供领导浏览,或是为了节约企业成本,文档就在人与人...而文档的管理的方式有两种形式,第一种是doc
  • 如何高效使用WORD自动编号功能

    千次阅读 2008-04-03 10:49:00
    文章正文的自动编号首先应该选择“格式-格式与样式”,在右侧栏中把要使用的编号样式编辑好并和大纲级别关联起来,方便下一步的使用,然后在“格式-项目符号和编号”中选择和自定义合适的编号的样式,在自定义的高级...
  • 本文通过一个实用例子完整演示了如何使用C#在ASP.NET里调用Word自动...1. 建立工程 在ASP.NET里操作Word第一步就是添加COM引用到你的工程里,通过右键点击“解决方案资源管理器”的“引用”,添加引用。选择COM选
  • 适用于:Visual Basic 2005Word 2007摘要:在 Word 中,对使用后端系统数据填充业务文档(如发票和报告)来说,自动化是个很好的机制。学习三种使用数据填充 Word 文档的有用方法。(打印共 11 )下载相关的 ...
  • 利用C++Builder 中OLE自动化功能实现调用Word进行报表制作 、概述  在我们利用C++Builder进行报表设计和打印处理时,我们往往是用C++Builder自己所提供的QReport组件中的组件进行报表的设计和输出。但这样...
  • 插入制表位的思想是用两个制表位将行分为三个部分,关键在于两个制表位参数的设置。这也是制表位中较为繁琐的,不同期刊要求的页面的边距不同,所设置的也不同。 新建个样式 点击“格式”---“制表位” ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,509
精华内容 14,603
关键字:

word第一页自动复制第二页