精华内容
下载资源
问答
  • 使用python-docx编辑word文档需要解决的问题安装python-docx 包功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容...

    心路历程

    朋友让我做几十份报告。数据来源于excel表格。为此,计划先手动做一个word模板,根据源数据,修改文档指定内容。查找了一些关于docx的使用方法,讲的比较多,尝试过程中也走了些弯路。所以想写一份更加清晰易懂的帮助文档。 必须要说,我是python新手,第一次发文章,主要是写给自己的笔记。

    安装python-docx 包

    cmd:pip install python-docx

    Tip: 打开cmd窗口时,记得以administrator 模式打开,否则可能会提醒‘permission denied’ 导致无法安装库文件
    在这里插入图片描述

    word文件基础操作

    关于docx库的详细使用方法,可以查看网站介绍:
    官方文档

    1.打开与保存文档

    import docx
    dir_tar_file_name = r'D:\workspace\self\Report-01.docx'
    wd = docx.Document(dir_tar_file_name)
    # 保存文件
    wd.save(dir_tar_file_name)

    docx 模块库只能处理 .docx 格式文件,如果时doc格式的,需要提前转换。
    所有对文档的编辑工作需要在word关闭的状态下进行,否则会引发错误。

    1. docx中对象类型

    a. paragraph 段落对象

    paragraph 很好理解,就是段落的意思。包括标题和按序号排版的内容。
    举个例子
    在这里插入图片描述
    获取paragraph的方式:

    wd = docx.Document(dir_tar_file_name)
    para=wd.paragraphs
    print('总共有 %s 段文字' %(len(para)))
    for i in para:
        print(i.text)

    运行结果,可以看到每一个段落分割符切分一个paragraph. 获取段落文本即其text属性。在这里插入图片描述
    新建paragraph

    new_paragraph=wd.add_paragraph('新增一个段落内容')
    #在段落前插入一段
    add_before_para=new_paragraph.insert_paragraph_before('在刚才那段话前插入这段话')

    b. table 表格对象

    word中经常会有表格,以下是获取表格文本对象的方式:
    tables->table->columns/rows->cells->text

    tables=wd.tables
    print('总共有%s个表格'%(len(tables)))
    print('第一个表有%s行,%s列'%(len(tables[0].rows),(len(tables[0].columns))))
    print('******按列打印*******')
    for col in tables[0].columns:
        for row in col.cells:
            print (row.text)
    print('******按行打印******')
    for row in tables[0].rows:
        for col in row.cells:
            print(col.text)

    Result:
    在这里插入图片描述
    以下 是修改tables的常用方法:

    #新建一个表格
    table=rew_record.add_table(rows=2,cols=2)
    #获取第二个单元格
    cell=table.cell(0,1)
    cell.text='填在第一行第二列'
    #获取第二行单元格
    second_cells=table.rows[1].cells
    second_cells[0].text='一'
    second_cells[1].text='二'
    #新增一行
    cells=table.add_row().cells
    cells[0].text='1'
    cells[1].text='2'

    c. picture 图片对象

    获取图片
    docx并不擅长处理picture对象,暂时无法获取文档中的图片需要借助其他工具,知道一个思路可以借鉴:
    将文档后缀改为zip,然后打开,会发现所有的图片都在word->media文件夹下,所以可以需要处理zip格式文件的方法。
    添加图片

    from docx.shared import Inches
    #导入Inches为了调整图片尺寸,默认尺寸往往过大
    #可以设置width/height
    wd.add_picture(r'C:\Users\\timg1.jpg',width=Inches(1.0))

    d. style 格式对象

    style即文档中的段落/字体格式,style 对象对应着word中的Styles工具栏内容。如下图:
    文本格式
    表格格式的name可以通过modify看到

    Table格式
    修改段落文本格式最简单的方法是重新给对象指定style名,和人为操作类似。所以需要提前把文本模板的格式创建并固定下来,免去后面再去更改字体或字体大小的麻烦。
    方法就是在styles中,create a New style
    这里面可以把style的作用域进行设置:paragraph/character/Table/List ,如果一个段落中有多种文本格式,需要使用character style。暂时不需要理解,等遇到实际问题了再回头看这句话。
    在这里插入图片描述
    在这里插入图片描述
    ** 获取文档的所有格式**

    #获取styles,注意 仅能get到文档中所使用过的类型
    styles=wd.styles
    for style in styles:
    	print(style.name)

    在这里插入图片描述
    获取段落,或表格的格式属性,并替换到其他格式。

    #修改第二段的格式,设置为2级标题
    para[1].style=styles['Heading 2']
    #修改表格格式
    tables[0].style=style['Table Grid']

    编辑style 属性
    编辑的是style的属性,不是仅仅修改指定文档的格式
    修改字体大小/斜体/加粗

    from docx.shared import Pt
    style1.font.size =Pt(12) #设为12号字
    style1.font.italic=True #斜体
    style1.font.bold=True #加粗
    style1.font.underline=True #下划线

    段落中的多style格式处理-run 对象
    如果段落中有多种格式,对paragraph.text修改会把格式覆盖掉,docx根据style类型不同将一段文字按run进行切割。

    for run in wd.paragraphs[3].runs:
        print(run.text)

    result:
    在这里插入图片描述
    例如:下面这段文字
    在这里插入图片描述

    把表格中的统计数据,填写到文档中,并把小于30的值加上下划线。

    #需要提前设定两个style类型
    if int(run.text[0:2])<=30:
        run.style=styles['Style_under1']
    else:
        run.style=styles['Style_Nounder']

    大概整理这些,有其他常见问题我再补充。

    展开全文
  • 这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、...

    序言

    一份word表格,如何快速更改某单元格的内容,比如说序号,或者是填充自己所需要的列表之类的文字,查阅得知
    VBA中的ActiveDocuments.Tables(index)属性,或者使用Python-docx库可以做到。。这篇博客主要记录使用VBA编辑word表格
    在平时的工作的,不建议做没必要的重复性劳动。一是提高工作效率,二是督促自己学习

    正文

    直接步入正题,放出VBA代码:

    i = 2  #2是指表格的数量
    m = 2
    h = 2
    #m,h是指行、列
    #循环读取表格中的单元格,并删除内容
    for j = 1 To i
    ActiveDocument.Tables(j).Cell(m, h).Range.Delete
    Next
    #循环读取表格中的单元格,并填充序号,比如第一个表格(2,2)填充1,第二个表格(2,2)填充2,依次类推
    For k = 1 To i
    ActiveDocument.Tables(k).Cell(3, 1).Range.InsertAfter "" & k
    Next
    

    这套代码只使用于没有干扰性的表格,啥意思呢,就是一个word文档中只有你想更改的表格,没有多余的表格。。单元格索引是从第一个表格开始,一直循环到最后一个表格,,i的数量就是表格的数量

    代码经过在office上的测试,完美运行。

    展开全文
  • 如何导出word文档

    2020-03-26 15:02:38
    这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、...

    前言

    一般导出word,是后台做的功能,如果确实需要前端做,可以借助jQuery的wordexport.js导出word文档


    提示:以下是本篇文章正文内容,下面案例可供参考

    一、使用步骤

    1.引入文件

    代码如下(示例):

    import '../../services/filesaver'
    import '../../services/jquery-3.3.1.min'
    import '../../services/jquery.wordexport'
    

    2.代码演示

    代码如下(示例):

       <!-- 导出模板 -->
        <div class="new-box" style="display: none" id="export_content">
          <div class="container" v-for="(item,index) in exportContent">
            <div class="img">
              <!--<img data-height="100" data-width="125" v-if="imgUrl" :src="'data:image/png;base64,'+ imgUrl"/>-->
            </div>
            <p class="time">新闻类型: {{item.name}} / {{item.secondType}} </p>
            <h3 class="title">{{item.title}}</h3>
            <p class="time"> {{item.publishTime}} <span>{{item.auth}}</span></p>
            <div class="contxt" v-html="item.picPath"></div>
            <br>
          </div>
        </div>
    
    $("#export_content").wordExport();
    

    该处的 export_content 元素,就是div的id


    总结

    综上就是简单的导出word文档

    展开全文
  • Vue 引入Ueditor修改样式仿照Word文档前言Vue 引入Ueditor仿照word文档进行样式修改合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格...

    前言

    项目中有涉及到对文本生成和文本内容编辑的需求,选择了百度的Ueditor。项目使用Vue框架。便于利用双向数据绑定特性,完成文本的生成。

    效果图

    Vue-Ueditor 效果图

    Vue 引入Ueditor

    1. 下载Ueditor
      附上:大佬github下载地址.
      将下载文件解压缩放在项目的static文件夹下并重命名为Ueditor。此处的地址对应第五步Ueditor配置属性中的[UEDITOR_HOME_URL]属性
    2. 安装Ueditor
      npm install vue-ueditor-wrap --save
      
    3. 项目中引入Ueditor组件
      import VueUeditorWrap from 'vue-ueditor-wrap'
      
    4. 推荐在需要的Vue文件中注册组件。用到地方不会很多,没必要全局注册
      components:{
      	VueUeditorWrap
      }
      
    5. 模板中添加组件,并进行数据绑定
      <vue-ueditor-wrap v-model="msg" :config="myConfig"></vue-ueditor-wrap>
      // data中定义msg属性
      data(){
      	return {
      		msg: '<h2>Vue + UEditor + v-model双向绑定</h2>'
      	} 
      }
      
    6. Ueditor属性配置
      如果不设置属性将代码段:config="myConfig" 删除即可。进行设置可以看一下操作。
      最重要的来了!!!!myConfig中的autoHeightEnabled一定要设置为false。自己没注意这个属性,为了实现内容过多时自动出现滚动条效果折腾了好久。有了这个再去修改iframe.css文件,就可以实现美美看着舒服的效果了
      // Ueditor 配置项
        myConfig: {
          /* 编辑器自动被内容撑高!!!!这个一定要设置为false。
          	自己没注意这个属性,为了实现内容过多时自动出现滚动条效果折腾了好久。
          	有了这个再去修改iframe.css文件,就可以实现美美看着舒服的效果了*/
          autoHeightEnabled: false,
          // 初始容器高度
          initialFrameHeight: 800,
          // 初始容器宽度
          initialFrameWidth: '100%',
          // 上传文件接口(这个地址是我为了方便各位体验文件上传功能搭建的临时接口,请勿在生产环境使用!!!
          //	临时用的大佬的地址,后期改成自己的就好了)
          serverUrl: 'http://35.201.165.105:8000/controller.php',
          // UEditor 资源文件的存放路径 对第一步设置的路径
          UEDITOR_HOME_URL: '/static/Ueditor/',
          // 设置想要的字体,默认全部都包含
          fontfamily: [
            { label:'',name:'songti',val:'宋体,SimSun'},
            { label:'',name:'kaiti',val:'楷体,楷体_GB2312, SimKai'},
            { label:'',name:'yahei',val:'微软雅黑,Microsoft YaHei'},
            { label:'',name:'heiti',val:'黑体, SimHei'},
            { label:'',name:'lishu',val:'隶书, SimLi'},         
            { label:'',name:'arial',val:'arial, helvetica,sans-serif'},
            { label:'',name:'arialBlack',val:'arial black,avant garde'},
            { label:'',name:'timesNewRoman',val:'times new roman'}
          ],
          // 设置想要保留的工具栏功能,将不用的删除掉即可。
          // 全部的可以去/static/Ueditor/ueditor.config.js 中搜索[toolbars]属性粘贴过来,再进行删除
          toolbars:[[
            'fullscreen', '|', 'undo', 'redo', '|',
            'bold', 'italic', 'underline', 'fontborder', 'strikethrough', 'superscript', 'subscript', 'removeformat', 'formatmatch', 'autotypeset', 'blockquote', 'pasteplain', '|', 'forecolor', 'backcolor', 'insertorderedlist', 'insertunorderedlist', 'selectall', 'cleardoc', '|',
            'rowspacingtop', 'rowspacingbottom', 'lineheight', '|',
            'customstyle', 'paragraph', 'fontfamily', 'fontsize', '|',
            'directionalityltr', 'directionalityrtl', 'indent', '|',
            'justifyleft', 'justifycenter', 'justifyright', 'justifyjustify', '|', 'touppercase', 'tolowercase', '|',
            'link', 'unlink', 'anchor', '|', 'imagenone', 'imageleft', 'imageright', 'imagecenter', '|',
            'simpleupload', 'insertimage', 'scrawl','attachment', 'insertframe', 'insertcode', 'pagebreak', 'template', 'background', '|',
            'horizontal', 'date', 'time', 'spechars', 'snapscreen', 'wordimage', '|',
            'inserttable', 'deletetable', 'insertparagraphbeforetable', 'insertrow', 'deleterow', 'insertcol', 'deletecol', 'mergecells', 'mergeright', 'mergedown', 'splittocells', 'splittorows', 'splittocols', 'charts', '|',
            'print', 'preview', 'searchreplace'
        ]]
      

    仿照word文档进行样式修改

    1. 设置文字编辑区域居中,并按照A4纸的样式。找到/static/Ueditor/iframe.css文件添加如下代码
    .view body{
      height: auto;
      min-height: 1122.53px;
      width: 21cm !important;
      margin: 12px auto;
      padding: 90.7072px  94.4867px 12px;
      box-sizing: border-box;
      box-shadow:  0 0 12px 0 rgba(0, 0, 0, 0.06), 
      			   0 0 0 1px rgba(0, 0, 0, 0.04);
    }
    .view{
      height: 98%;
    }
    

    2.内容过多时,右侧自动出现滚动条,微微有些丑,找了大厂的滚动条样式。

    ::-webkit-scrollbar {
      /* width: 8px;腾讯文档的 */
      width: 10px;
      height: 8px;
    }
    ::-webkit-scrollbar-thumb {
      background: rgba(0, 0, 0, 0.12);
      border-radius: 5px;
      border: 1px solid transparent;
      height: 140px;
      background-clip: content-box;
    }
    ::-webkit-scrollbar-thumb:hover {
      background: #CCCCCC;
      border-radius: 5px;
      border: 1px solid transparent;
      height: 140px;
      background-clip: content-box;
    }
    ::-webkit-scrollbar-corner {
      background-color: inherit;
    }
    

    大功告成

    个人工作遇到问题记录。希望可以帮到需要的人。文章中如果错误,希望大佬们指正。
    本文参考前辈文章:https://blog.csdn.net/haochuan9421/article/details/81975966

    展开全文
  • JAVA基于OPENXML的word文档插入、合并、替换操作系列之基础篇(一)前言新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一...
  • Word大型文档排版指南

    2011-12-01 12:34:18
    本书主要讲解用Word排版大型文档的经验和技巧,可供撰写毕业设计论文的同学和写书的作者参考,希望本书能帮助到大家。 目录 前言...................................................................................
  • Scientific Word

    2012-09-21 08:42:05
    Sciword(Scientific Word) 是一个全面支持LaTeX的软件, LaTeX是一种描述复杂文档的语言基于TeX系统。使用Scientific word,可以使用自然的数学表达式组成数学、科学和技术文件。 使您以LaTeX排版与出版更容易 ...
  • 12.1 在PowerPoint或Word中显示Excel图表 279 12.1.1 将图表复制为链接到原工作簿链接的动态图表 280 12.1.2 将图表复制为与原工作簿拷贝链接的动态图表 281 12.1.3 将图表复制为图形 282 12.1.4 将图表...
  • 12.1 在PowerPoint或Word中显示Excel图表 279 12.1.1 将图表复制为链接到原工作簿链接的动态图表 280 12.1.2 将图表复制为与原工作簿拷贝链接的动态图表 281 12.1.3 将图表复制为图形 282 12.1.4 将图表...
  • 12.1 在PowerPoint或Word中显示Excel图表 279 12.1.1 将图表复制为链接到原工作簿链接的动态图表 280 12.1.2 将图表复制为与原工作簿拷贝链接的动态图表 281 12.1.3 将图表复制为图形 282 12.1.4 将图表...
  • 12.1 在PowerPoint或Word中显示Excel图表 279 12.1.1 将图表复制为链接到原工作簿链接的动态图表 280 12.1.2 将图表复制为与原工作簿拷贝链接的动态图表 281 12.1.3 将图表复制为图形 282 12.1.4 将图表...
  • 12.1 在PowerPoint或Word中显示Excel图表 279 12.1.1 将图表复制为链接到原工作簿链接的动态图表 280 12.1.2 将图表复制为与原工作簿拷贝链接的动态图表 281 12.1.3 将图表复制为图形 282 12.1.4 将图表...
  • 12.1 在PowerPoint或Word中显示Excel图表 279 12.1.1 将图表复制为链接到原工作簿链接的动态图表 280 12.1.2 将图表复制为与原工作簿拷贝链接的动态图表 281 12.1.3 将图表复制为图形 282 12.1.4 将图表...
  • 12.1 在PowerPoint或Word中显示Excel图表 279 12.1.1 将图表复制为链接到原工作簿链接的动态图表 280 12.1.2 将图表复制为与原工作簿拷贝链接的动态图表 281 12.1.3 将图表复制为图形 282 12.1.4 将图表...
  • 12.1 在PowerPoint或Word中显示Excel图表 279 12.1.1 将图表复制为链接到原工作簿链接的动态图表 280 12.1.2 将图表复制为与原工作簿拷贝链接的动态图表 281 12.1.3 将图表复制为图形 282 12.1.4 将图表...
  • Word文档:空白文档、信纸尺寸的文档、Office 2003文档和报告文档; PPT文档:空白演示、深色演示、浅色演示和Office 2003演示。 Picsel Smart Office Donate功能还是比较强大的,能够支持普通的Word、PPT和Excel...
  • 中文版Excel.2007图表宝典 1/2

    热门讨论 2012-04-06 18:49:24
    4.5.4 将标题文本链接到一个单元格/96 4.6 处理图表的图例/98 4.6.1 添加或删除图例/98 4.6.2 移动图例或重新设置图例的大小/98 4.6.3 设置图例格式/99 4.6.4 更改图例文本/99 4.6.5 删除图例项/99 4.7 处理图表的...
  • 中文版Excel.2007图表宝典 2/2

    热门讨论 2012-04-06 19:01:36
    4.5.4 将标题文本链接到一个单元格/96 4.6 处理图表的图例/98 4.6.1 添加或删除图例/98 4.6.2 移动图例或重新设置图例的大小/98 4.6.3 设置图例格式/99 4.6.4 更改图例文本/99 4.6.5 删除图例项/99 4.7 处理图表的...
  • 标题里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左...
  • 5.掌握数据的图表化和地图:嵌入式图表和独立图表的概念,创建图表图表编辑图表的格式化,创建地图(数据地图的概念,创建和修改地图,添加数据)。 6.掌握数据管理和分析:数据列表的概念和基本操作,分类...
  • 一、 图形和图表编辑技巧 58 105. 在网上发布EXCEL生成的图形 58 106. 创建图表连接符 59 107. 将EXCEL单元格转换成图片形式插入到WORD中 60 108. 将WORD内容以图片形式插入到EXCEL表格中 61 109. 将WORD中的内容...
  • 一、 图形和图表编辑技巧 58 105. 在网上发布EXCEL生成的图形 58 106. 创建图表连接符 59 107. 将EXCEL单元格转换成图片形式插入到WORD中 60 108. 将WORD内容以图片形式插入到EXCEL表格中 61 109. 将WORD中的内容...
  • Excel技巧大全

    2015-05-06 07:21:37
    三、 图形和图表编辑技巧 29 1. 在网上发布Excel生成的图形 29 2. 创建图表连接符 30 3. 将Excel单元格转换成图片形式插入到Word中 30 4. 将Word内容以图片形式插入到Excel表格中 30 5. 将Word中的内容作为图片链接...
  • Excel新手完全教程

    2014-10-08 23:13:58
    一、 图形和图表编辑技巧 42 105. 在网上发布EXCEL生成的图形 42 106. 创建图表连接符 43 107. 将EXCEL单元格转换成图片形式插入到WORD中 44 108. 将WORD内容以图片形式插入到EXCEL表格中 44 109. 将WORD中的内容...
  •  6、在Word 2013中,用户可以直接打开和编辑PDF文件,无需将其转换为另一种格式。  7、PowerPoint中的新任务窗格在屏幕上显示格式化功能,用户可以轻松对其进行访问。  8、Excel中的图表工具可以对您所选择的...
  • Excel使用技巧大全

    2011-09-13 23:38:39
    三、 图形和图表编辑技巧 36 1. 在网上发布EXCEL生成的图形 36 2. 创建图表连接符 36 3. 将EXCEL单元格转换成图片形式插入到WORD中 37 4. 将WORD内容以图片形式插入到EXCEL表格中 37 5. 将WORD中的内容作为图片链接...
  • 三、 图形和图表编辑技巧 29 1. 在网上发布EXCEL生成的图形 29 2. 创建图表连接符 30 3. 将EXCEL单元格转换成图片形式插入到WORD中 30 4. 将WORD内容以图片形式插入到EXCEL表格中 30 5. 将WORD中的内容作为图片链接...
  • Markdown文件以记录R代码的含义和作用(.rmd),并编入Word文档(.docx) 来自SurveyMonkey(.csv)的数据集(带有数值) 输出: 分散条形图以可视化李克特量表项(即,对于进度报告(.png),从5点刻度到非常不...
  • 实例082 将一个Word文档分割为多个小的Word文档 实例083 将多个Word文档合并为一个Word文档 实例084 批量替换Word文档中指定的字符串 3.2 读取外部数据到Word中 196 实例085 读取文本文件到Word中 实例086 ...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 147
精华内容 58
关键字:

word文档图表编辑链接