/Html-to-Word

将Html文件中的多级嵌套表格转换成Word

Primary LanguagePython

Html-2-Word 工具使用说明

当前版本:v 0.1.1-beta


内容指南:

  • 引用框内一般用于表示文件类型和命名规则
  • 加粗 字体用于提示特别需要注意的事项
  • 0删除线0 一般用于表示不建议使用的功能
  • # 代码块一般用于表示代码。
    print("例如这是一段python代码")
    
    # 或者也可以用来表示一个步骤
    1 -> 2 -> 3 

使用步骤:

1. 在工作目录下(一般情况为./Html2Word)创建以下文件夹:

  • html_input:用于存放需要被转换的 HTML 文件。
  • model_input:用于存放word模板( .docx 格式)。
  • output:用于存放转换后输出的word文件( .docx 格式)(此文件夹可以不用手动创建)
  • 创建好后的./Html2Word文件夹内应如下所示:( main.pydelete.py 可以修改文件名,例如 main.py 更名为 开始转换.py
Html2Word
    ├ html_input
    │     ├ xxx.html
    │     └ ...
    ├ model_input
    │     └ xxx.docx
    ├ ouput
    ├ delete.py
    └ main.py

2. 开始前的检查:

  • 步骤1已全部完成,文件夹命名正确无误。
  • html_input目录内不为空
  • model_input目录内不为空,且应使用指定的标准模板及由其生成的子模板。
  • 注意model_input目录内目前只允许存在一个模板
  • 注意:目前的版本支持类型0类型0.5类型1三种 HTML 文件的完全转换类型2HTML 文件目前仅支持转换标题表格,使用时需注意(有关文件类型的事项会在后文中进行说明)。
  • 注意:开始运行脚本前务必关闭已打开的任何位于 html_input, model_input, output 文件夹内的文件

3. 运行main.py脚本过程中:

  • 完成上述检查工作后,鼠标左键双击main.exe可执行文件即可开始对 HTML 文件进行转换。
  • 注意:运行工具脚本过程中务必不要打开任何位于 html_input, model_input, output 文件夹内的文件
  • 运行过程中,你可能会看见python运行控制台内有如下提示:
    • ------ 共有x个文件待处理 ------ :用于表示所有待处理的 HTML 文件数量,可供检查数量上是否存在错误,发现错误可立即关闭控制台的对话框,以终止转换,修正错误后再重新开始。
    • ------ 此次导入的HTML文件类型为 x 类型 ------ :用于表示当前处理的 HTML 文件的类型,可供检查和后续排查错误作参考。
    • ------ 文件名为:XXX123123.html ------ :用于表示当前处理的 HTML 文件的文件名,可供检查和后续排查错误作参考。
    • =================== :用于表示单个文件处理步骤之间的分隔。
    • ------ 正在处理标题数据 ------ :用于提示当前文件处理到了标题数据。
    • Find and set: x.x.x XXXXXX :用于表示当前处理的 HTML 文件中含有该项测试,并将该项测试的总体结果填入到了标题表格中。
    • ------ 完成标题数据处理 ------ :用于表示当前文件完成了对标题数据的处理。
    • ------ 共有xx个测试数据待处理 ------ :用于表示该 HTML 文件中总共有多少个测试数据需要被填入模板表格中。
    • ------ 正在处理第x个测试数据 ------ :用于表示当前对测试数据的处理进度。
    • ------ 完成第x个测试数据的处理 ------ :同上。
    • Find x.x XXXX :表示在模板表格中找到了该表格,并正在将数据填入模板表格中,可供后续排查是否有表格遗漏未能填入数据。
    • ------ 完成第x个文件的处理 ------ :主要用于显示当前的处理进度。
    • ------ 耗时: 30.28 秒 ------ :显示处理单个文件的耗时,可供评估效率使用。
    • Get special title 4.1 节点地址测试 :表示该表格为特殊表格,需要特殊处理。
    • Set fail at cell(4, 3) : 对于特殊处理的表格,目前该工具的方法是只对错误数据进行处理,因此该项主要用于提示将表格中的(4,3)单元格设置为fail,即NOK
    • ------ 已处理完成所有文件 ------ :表示处理完成所有文件,可以打开具体的报告进行后续的检查工作。
    • ------ 总耗时: 159.22 秒 ------ :表示处理完这批文件总共的耗时,可供评估效率使用。
  • 对于整个处理过程,可能会在某些时候因为需要进行的处理操作过于复杂,导致控制台一段时间内没有出现下一个提示信息的现象,这属于正常情况,稍作等待即可,无需进行其他操作。(后续会对相应的流程进行算法的优化和改进。
  • 处理流程尚未结束时,最好不要打开output文件夹里生成文件,以免发生错误。
  • 若处理过程中发生控制台窗口闪退消失等情况,说明可能在处理文件是出现错误,请检查output文件夹中已有的文件是否输出完整,并保存备份好出错批次的output文件夹、html_input文件夹和model_input文件夹以及其中的所有文件,以便于后续的debug流程。
  • 处理完成后,按任意键即可退出python控制台窗口

4. main.py脚本运行完后:

  • 脚本运行完成之后,会在output文件夹生成与对应 HTML 文件相同文件名的报告。
  • 对于8.8 Bus Off恢复时间这项测试,如果有多组数据,将会按每组数据一个表格的形式进行填写。
  • 强烈建议在报告生成完成之后,进行一次对照检查工作,并修改和报告其中出现问题。
  • 如果需要将两份及以上的 HTML 文件合成进一个报告中,那么需要按顺序进行上述步骤,例如对于1.html2.html3.html,合成的步骤如下,以此类推( 注意model_input文件夹中只允许有一个模板文件,请做好检查和相应的备份工作 ):
    1.html -> html_input -> main.exe -> output -> 1.docx -> model_input
    2.html -> html_input -> main.exe -> output -> 2.docx -> model_input
    3.html -> html_input -> main.exe -> output -> 3.docx -> model_input
    ······

5. delete.py脚本运行前后:

  • 该工具脚本的作用是将 output 文件夹中生成报告的空白表格删除,不会删除其他文字段落。

  • 脚本运行前的步骤和注意事项基本与 main.py 脚本运行前相同。

  • 注意:在运行 delete.py 脚本前,务必确认已完成所有的转换任务,以及关闭已打开的文件窗口(文件位于 output 文件夹内)


常见错误信息

  • 若发生报错信息形如 发生错误,报错信息为: Package not found at 'model_input\~$CAN单节点测试报告模板1.docx' 以及 发生错误,报错信息为: Package not found at 'output\~$0S HEV ICE 高速CAN网络测试报告.docx'都说明运行工具脚本前都未关闭相应的文件。请关闭后重新运行脚本。

关于HTML文件类型:

  • 类型0 一般指的是<html>标签元素中含有<table class="HeadingTable">这一标签的文件。
  • 类型1 一般指的是<html>标签元素中含有<table class="MsoNormalTable" ...>这一标签的文件。
  • 类型0.5 一般指的是<html>标签元素在 类型0 的基础上,同时又含有 <big class="Heading3">Preparation of Test Module</big> 这一标签的文件。
  • 类型2 一般指的是<html>标签元素中含有<h1>这一标签的文件。
  • 上述类型文件在视觉层面的区别主要是标题表格的格式不同,具体的文件解析方式也略有不同,但使用该工具的时候一般不需要人工对文件类型进行识别。
  • 通常在进行转换的过程中,发生数据填写相关的错误时,才需要人工介入排查文件类型的识别问题。

一些目前有待解决的问题:

  • AUTOSAR测试内容的具体适配工作未能实现。
  • 对于5.17测试项目的具体功能划分无法实现,目前仅按照测试总结果来进行填入。
  • 8.3-8.6的测试项因为“被测节点是15节点,不进行测试”,所以测试结果均为N/A或可能第一项为OK,其他为N/A,但在标题表格的测试总结果中显示为OK,可能需要人工介入检查进行修改。
  • INFON/AN/T这三项目前脚本尚不能进行自动分辨,当前的处理方法是全部转换为N/A,后续若有需要,可能要求人工介入检查进行修改。

Q & A

Q:如果我在使用这个工具脚本的过程中发生了错误,我应该怎么办呢?
A:可以通过联系开发者进行解决:

  • 邮箱:devenv2010@qq.com