当前位置: 首页 > news >正文

重庆网站建设雪奥科技如何进行优化

重庆网站建设雪奥科技,如何进行优化,wordpress seo,做直播网站开发教程表格在word文档中常见的文档元素之一。操作word文件时有时需要提取文件中多个表格的内容到一个新的文件#xff0c;甚至有时还会要提取题注信息。 今天#xff0c;给大家分享两种批量提取文档中表格的两种方法#xff0c;分别是VBA法和Python法两种。 一、VBA法提取word中…表格在word文档中常见的文档元素之一。操作word文件时有时需要提取文件中多个表格的内容到一个新的文件甚至有时还会要提取题注信息。 今天给大家分享两种批量提取文档中表格的两种方法分别是VBA法和Python法两种。 一、VBA法提取word中的表格 1. 代码实现 VBAVisual Basic for Applications操作Word文件时可以执行包括创建、打开、保存、修改文本和格式等多种任务。今天我们使用VBA来批量提取当前文件中的表格在每个表格中间添加一个空行。实现代码如下 Sub ExtractTablesAndPreviousRowToNewFile()Dim docSource As DocumentDim docTarget As DocumentDim tbl As TableDim rng As RangeDim outputPath As StringDim fileName As String 设置输出文件名和路径fileName output.docxoutputPath ActiveDocument.Path \ fileName 当前文档设置为源文档Set docSource ActiveDocument 创建一个新文档作为目标文档Set docTarget Documents.AddFor Each tbl In docSource.Tables 复制表格tbl.Range.CopydocTarget.Content.InsertParagraphAfterdocTarget.Content.Paragraphs.Last.Range.Paste 在表格后添加一个空行docTarget.Content.InsertParagraphAfterdocTarget.Content.Paragraphs.Last.Range.InsertParagraphAfterNext tbl 删除目标文档中的第一个空段落If docTarget.Paragraphs.Count 0 ThendocTarget.Paragraphs(1).Range.DeleteEnd If 保存新文档到指定路径docTarget.SaveAs2 fileName:outputPath, FileFormat:wdFormatXMLDocumentdocTarget.CloseMsgBox 表格及其上方一行内容已经成功提取到 outputPath, vbInformation End Sub 2. 代码分析 以上代码首先激活当前文档作为源文档然后创建一个新文档output.docx用来放置提取的表格和题注。它会遍历源文档中的所有表格对于每个表格尝试复制表格本身到目标文档中。 每个表格后面还会插入一个空行以保持文件中多个表格间清晰的视觉分隔。 3. 使用方法 首先在Word中打开你想提取表格的文档然后按下 Alt F11 打开VBA编辑器。在【项目】窗格中选择你的文档然后插入一个新的模块右键点击你的文档名称选择【插入】 【模块】。将以上VBA代码复制并粘贴到新模块中。关闭VBA编辑器然后运行宏在Word中可以通过【视图】 【宏】 【查看宏】选择这个宏然后点击【运行】即可。 二、Python法 Python在office办公自动化方面有非常广泛的用途它有专门的库来处理office中的各个组件而且这些都是开源免费使用的。操作word文件就要用到python-docx这个库在编写程序之前要安装新版的Python程序然后在cmd下面用pip install python-docx来安装这个库也可以在thonny这个轻量版的集成开发环境中安装python-docx用于操作word文件。 1.代码实现 我们首先从docx中导入Document模块然后读取指定的word文件提取表格及其内容到一个新的文件当中并保存。实现代码如下 from docx import Document import osdef extract_tables(doc_path, output_path):# 加载原始文档doc Document(doc_path)new_doc Document()# 提取表格并添加到新文档for i, table in enumerate(doc.tables):t new_doc.add_table(rows1, colslen(table.columns))t.style Table Grid # 使用内置的表格样式这样会自动添加框线# 复制表头for j, cell in enumerate(table.rows[0].cells):t.cell(0, j).text cell.text# 复制其他行for row in table.rows[1:]:new_row t.add_row()for j, cell in enumerate(row.cells):new_row.cells[j].text cell.text# 除了最后一个表格外在每个表格后添加一个空行空段落if i len(doc.tables) - 1:new_doc.add_paragraph()# 保存新文档new_doc.save(output_path)# 使用示例 extract_tables(example.docx, output.docx) 2. 代码分析 以上代码把example.docx文件中的所有表格提取到了output.docx文件中同时使用了表格的内置样式给新生成的表格自动添加框线基本实现表格文本内容的提取但是表格中的字体颜色、大小和边框样式均无法提取。同时这里也没有提取题注这时我们需要对代码进一步修改以使其可以提取表格上方的题注。 3. 提取题注和表格内容 本代码把表格上方居中的文字默认识别为表格的题注提取表格内容时会一并提取出来。 from docx import Document from docx.enum.text import WD_ALIGN_PARAGRAPH import osdef extract_tables_with_titles(doc_path, output_path):# 加载原始文档doc Document(doc_path)new_doc Document()# 提取表格并添加到新文档for i, table in enumerate(doc.tables):# 尝试定位并复制表格上方的居中文字# 查找表格前的段落para table._element.getprevious()if para is not None and para.tag.endswith(p):# 检查该段落的格式是否为居中p para.getparent()para_obj [p for p in doc.paragraphs if p._element para][0]if para_obj.alignment WD_ALIGN_PARAGRAPH.CENTER:# 添加居中的段落到新文档new_para new_doc.add_paragraph(para_obj.text)new_para.alignment WD_ALIGN_PARAGRAPH.CENTER# 添加表格t new_doc.add_table(rows1, colslen(table.columns))t.style Table Grid # 使用内置的表格样式这样会自动添加框线# 复制表头for j, cell in enumerate(table.rows[0].cells):t.cell(0, j).text cell.text# 复制其他行for row in table.rows[1:]:new_row t.add_row()for j, cell in enumerate(row.cells):new_row.cells[j].text cell.text# 除了最后一个表格外在每个表格后添加一个空行空段落if i len(doc.tables) - 1:new_doc.add_paragraph()# 保存新文档new_doc.save(output_path)# 使用示例 extract_tables_with_titles(example.docx, output.docx) 以上代码在原有代码基础上增加了题注内容的提取通过调用extract_tables_with_titles这个函数批量把example.docx文件中的表格和题录提取出来并放到了output.docx当中并且每个表格之间会有一个空行。 三、演示视频 本人录制了相关视频供大学参考使用。 VBA和Python提取Word中的表格 四、学后反思 利用VBA和Python均可以实现表格内容提取的功能但是对于文字和表格的样式无法完整提取。后期会进一步探索如何把表格内容和样式完整拷贝出来但是由于涉及字体等特殊格式提取样式会有一定的难度。上面两种方法的优势在于可以批量、高效地提取表格内容但是无法提取样式因此在提取复杂表格时可能会报错。以上代码默认是把表格批量提取到当前目录VBA代码应用的是当前的word文件而python则要求提取的文件名为example.docx如果想批量提取多个文件中的表格则还需要添加for循环来遍历所有的word文件。
http://www.zqtcl.cn/news/173164/

相关文章:

  • 一个网站用多个域名分页网站
  • 门户网站举例phpstuy wordpress
  • 做网站许昌美业管理软件系统排名
  • 温州市建设工程质量安全管理总站贵阳最新消息今天
  • 成都服装网站建设工作是否能给我们带来快乐
  • 电商网站建设综述长沙高端网站建设
  • 网站建设有哪些环节怎么申请网址
  • 做网站要什么软件经典网站首页
  • 个人网站备案转公司备案长沙网站seo报价
  • 上海网站开发建设电话电影vip网站建设步骤
  • 17.zwd一起做网站池尾站邢台快用网络科技有限公司
  • 做写字楼租赁用什么网站好如何申请网站com域名
  • 如何查询网站服务商安徽省建设厅证件查询安全员c证
  • asp网站怎么安装程序员wordpress插件
  • 池州网站建设哪家好郑州seo网站管理
  • 我要建个人网站国外免备案虚拟主机
  • 自建站 外贸做旅游网约车的网站
  • 网站关键词优化排名软件东莞网站建设图表
  • 为企业设计网站微信开放平台的发展前景
  • 苏州高端做网站软件开发流程图例子
  • 开发区网站建设公司wordpress中文官网
  • 购物网站项目经验搭建网站流程
  • 网站建设企业蛋糕怎么做网站里导出没有水印的图
  • 享设计网做兼职设计师怎么样何鹏seo
  • 淘宝联盟网站推广位怎么做网站建设小知识
  • 徐州有办网站的地方吗企业做网站多少钱
  • 地铁公司招聘信息网站通江县网站建设
  • 家具网站 模板上海虹口建设局官方网站
  • 网站建站建设哪家好wordpress全站静态
  • 旅游网站建设策划seo顾问多少钱