统信程序(十二)档案归档文件管理

张开发
2026/4/12 19:32:36 15 分钟阅读

分享文章

统信程序(十二)档案归档文件管理
一、档案管理依靠AI能解决人脑的以下困扰1.更方便的时间逻辑检查避免了多资料来源检查时的头昏脑涨。2.更方便的引用联动避免了改动一处其他各处不联动的手忙脚乱。3.更方便的文件生成避免了几十个文件同一个名称录入的繁琐。4.更方便的标号目录生成避免了分卷、分页的前后逻辑混乱。二、存在的Risk缺少后端。很多细化功能未实现。例如单独指定某段文字格式。因为文档代码有11万字所以传了附件里边的程序代码在linux和windows中均使用过。以下是程序要求制作一个名叫文档管理的python程序尽量实用类来减少代码量通过一个py文件完成所有功能。通过tktinter界面输入参数窗口大小默认单显示器1920*1080获取屏幕分辨率可拖动调整大小并记住。底色淡黄色字体的系统判断如果是windows默认字体为仿宋否则是Fangsong Ti,字号均为12号。尽量简洁如果无错误则不要弹窗提示.程序目的是类似一个书架目录区域作为书架每行就是每本书显示书的索引起到标注、预览作用每本书可以通过编辑窗口来编辑其内容然后支持导出“每本书”和目录最后支持以树形机构的形式保存这个书架并可以搜索比对书架上的书的内容。程序所在目录应有“项目”和“模板”两个文件夹如果没有则创建支持多级目录。其中“模板”文件夹中放有docx、xlsx文档用于程序点击输出按键时查找对应名称以提供内容替换。其中“项目”文件夹用来保存项目json文件。采用结构化的存储方式第1个类定义表格类如下只有目录区域和各个编辑窗口用到此类使用pandas和kk.treeview来实现表的嵌套、链接、自动更新功能对这个表格类的一些要求如下表格形式列表的风格应统一。各列表均包括标题栏、各行内容两个部分可以设定和调整列宽可以预先设定和手动设定标题栏的名称有侧边滚动条。标题栏本质上也是输入框的一部分只是颜色底色淡黄色而且预先写入的默认值并可以手动拖动宽窄以此避免标题栏和输入框的宽度不一致问题。表格是无边框表格每一行的底色为白色、淡蓝色相间。可以限制默认显示行数应支持通过复制来添加行总行数最多50行。并可以复制、删除或减少、移动行可以选择编辑来打开某行的子表。子表的结构如果不做限定则和母表一样。各行能复制、删除、上移、下移操作时注意不要断开引用关系。注意各行复制时不单复制了各行的内容。目录区域复制时各行对应的编辑窗口内容一并被复制。表左边是复选框列默认都选中如果不选则不参与并且此行底色整行变为灰色并可指定其关联功能。复选框列右边是序号列作为第1列且该行无内容时改行无序号复选框、序号列的列宽默认统一为25。其他各列如果不指定尺寸则默认尺寸100可调整。表格中复选框可以选择序号列随之变化例如未选中时序号列改行无序号其他输入框可以输入内容也可以输入“”之后回车弹窗来选择链接引用其他输入框内容这样被引用框内容变化时能实时联动。表格的最下边一行是合计行对应列表上边的每列作用是判断如果该列输入的全是数字或引用返回的数字但没有其他文本则自动显示该列的求和结果。第2个类定义“概览类”功能如下只有引用区域和各个编辑窗口的概览区域用到此类第1至2行从左到右是按钮。第3至4行是输入框其名称可自定义。输入框可以输入内容也可以输入“”并回车来链接引用其他输入框内容这样被引用框内容变化时能实时联动。第1个输入框默认名称为项目名称其输入框内容随着读取项目而自动显示当前读取的项目名称并支持修改保存时json文件名称按此输入框内容保存。定义程序界面如下程序主界面布局分为三块区域上边的引用区域、中间的目录区域、底部的状态栏。定义上边的引用区域标题为“项目概览”通过引用“概览类”来实现。该区域共四行。第1至2行用于执行程序操作。从左到右第一个是保存按钮第2个是时间逻辑按钮第3个是读取按钮第4个是说明按钮、第5个是输出按钮。第6个是目录模板文件选择按钮。点击目录模板文件选择按钮用于选择目录区域四个单元导出目标模板文件文件名包括扩展名以便区分选择模板文件后列表显示对应文件名并在保存时存储。注意不能两个不同文档的编辑窗口中模板文件名选择框选择同格式且同一个文件名的文件包括扩展名。如果有则拒绝并提示。引用区域第3行至第4行为引用列表用于保存用于替换的重复性高的信息。区域总高度不超过150。具体包括16个输入框其默认名为项目名称、归档年度、归档单位、涉及单位、被涉单位、被涉单位简称、分卷页数、总卷号、页高度、自定义0、自定义1、自定义2、自定义3、自定义4、自定义5、自定义6。其中涉及单位的默认值“涉及局”、分卷页数的默认值220、页高度ygd默认值515。其中分卷页数、总卷号、页高度、自定义0、自定义1、自定义2、自定义3输入框的默认宽度定义为50。各个列表的替换码分别为xmmc、gdnd、gddw、sjdw、bsjdw、bsjdwjc、fjys、zjh、ygd、zdy0、zdy1、zdy2、zdy3、zdy4、zdy5、zdy6。一、点击时间逻辑按钮后弹出时间逻辑窗口。该窗口的内容不参与导出包括时间校核表格。使用表格类来实现时间校核表格。设定标题栏为复选框、序号、题名、日期、间隔天数、工作日间隔、备注。序号、间隔、工作日间隔标题栏因内容很少而宽度较窄宽度为15题名及备注宽度95复选框默认选中未选中则跳过该行时间计算功能。如果输入等号“”后回车后弹窗按顺序显示软件中引用区域、目录区域、编辑区域有输入内容的输入框注意不要嵌套引用。也可随后手动输入修改修改后引用关系断开。每行的日期列支持日期格式yyyymmdd例如20251010。每行的间隔天数框默认写入内容是自动计算并显示上下两个日期的间隔天数每行的工作日间隔列默认写入内容是显示上下两个日期的工作日间隔天数只考虑周末及中国法定假日、调休日其中调休日如国庆调休上班算工作日如果天数为负数则字体为红色。每行的备注列能手工录入备注。各行能复制、删除、上移、下移操作时注意不要受影响断开引用关系。二、点击保存按钮则按项目名称保存项目需要检查“项目”文件夹中看是否有重名有重名则提示覆盖还是手动另存无重名则直接保存无提示。三、点击读取按钮用来“模板”文件夹中的所有文件名文件名包括扩展名以便区分。四、点击说明按钮弹出一个说明窗口其中是一个大的输入框可编辑输入内容默认内容为“p代表^p。文字/代表删除对应文字。输入后回车开始引用各个单元的目录替换码分别为mltha、mlthb、mlthc、mlthd编辑窗口的输入区域替换码初始值是bjwh、bjzrz、bjtm、bjrq、bjys、bjmj、bjtjmc、bjbz。编辑窗口的输入区域替换码初始值是bjth引用区域的替换码初始值是xmmc、gdnd、gddw、sjdw、bsjdw、bsjdwjc、fjys、gjj、bjth、ygd、zdy0、zdy1、zdy2、zdy3、zdy4、zdy5”五、点击输出按钮后先执行保存按钮的功能随后通过导出程序将所有编辑窗口内容、目录区域、引用区域内容按要求批量替换“模板”文件夹中放的docx、xlsx文档内容后执行改名程序后按原文件结构统一另存到同一目录下的项目名称“档案”文件夹。如果已存在相同的文件夹则自动在文件夹名字后增加序号以免覆盖。可以取消选择模板如果模板文件不存在程序应提示并跳过。改名程序作用是替换后把模板文件改名后以便另存。首先判断编辑页面中“添加名称”输入框如果有内容替换内容后的文件名称前增加“添加名称”的内容如果“添加名称”没有内容则不改名。目录区域在引用区域下边从第5行开始向下到状态栏的区域标题为“档案目录”从上到下分为四个单元。1、四个单元分别是第一单元、第二单元、第三单元、第四单元只有一个标题栏在第一单元列表上各单元的列表从上到下顺序排列之间不连续这四个单元共同构成目录区域输出时共同导出到一个模板文件。2、使用表格类来实现四个目录列表。标题栏从左到右依次是复选框、序号文号、责任者、题名、日期、页号、密级、页数随后是需盖章、已盖章、需签字、已签字的复选框的标题、备注列。支持滚轮上下滚动。标题栏默认列宽如下复选框、序号、页数、需盖章、已盖章、需签字、已签字宽度默认为25文号、责任者、日期、页号、密级标题栏宽度默认为100。题名、备注列表默认宽度为525。各个输入行内容均代表一个目录文件每行对应一个编辑窗口里边是各行的子表。各行能复制、删除、上移、下移操作时注意不要受影响断开引用关系。注意复制时不单复制了各行的内容各行对应的编辑窗口内容一并被复制。各行的功能要求从左到右具体如下复选框默认都选中用于确定某一行是否参与批量输出写入文件及计算页号如果勾选则点击时参与写入及计算页号。序号列数值等于变量xh默认值为1逐行累加1如果该行复选框未勾选或本行无内容则不参与编号即跳过该行如果分卷则xh重置为1。原理是在每卷内从1开始给个每勾选及 有内容的行编号序号计算不受单元影响也不受分页影响而只受到分卷判断影响且等于目录区域内本卷第1行到本行的勾选及有内容行的数量之和。例如第一单元页数合计小于分卷页数fjys则第二单元的序号就不是从1开始的。分卷页数fjys是一个数组以便完成各卷页数、序号、页号、输出时各个分卷判断单独控制的目的。具体办法是读取分卷页数输入框内容默认是一个数字此时单个数字循环如果是多个数字以英文或中文逗号分开则多个数字循环读取每分一卷则读取下一个数字。例如输入框中为210,220250时共分了5卷则第一卷用210第二卷用220第三卷用250第四卷用210第五卷用220。输入区域的目录每行可以编辑每个输入框内容而且进入编辑窗口。页号列的内容数值等于变量yh。页号变量yh规则如下页号计算跨四个单元也不受分页影响而只受到分卷判断影响且基于目录区域内各个单元中所有仅勾选行的页数在每卷内进行累加。分卷判断则仅受勾选行影响不受单元影响基于最终写入输出文件的所有行的页数进行累加即页号仅处理每卷中勾选了复选框的行的页数列每行的页号从其上本卷各行的页数及本行的页数累加得出每卷的第一行页号从1开始如果本行页号为1则页号是1如果本行页数大于1其页号为“1-{本行的页数}”其余的行如果本行页号为1则页号是个{本卷第一行到本行的上一行的页数之和加一}的数字如果本行页数为空则页号也是空的如果本行页数大于1则页号是“{本卷第一行到本行的上一行的页数之和加一}-{本卷第一行到本行的页数之和}”。如果目录区域中页数列之和fjys,即本卷已写入的包括本行的各行页数相加的变量卷页数jys不区分单元、只区分卷结果如果大于等于代码fjys的值则下一行就是新的一卷因此下一行就是下一卷的第一行其页号yh从1开始且下一行序号xh从1开。即页号只有分卷才会重新计算且重置序号变量xh值为1。总卷号输入框中显示zjh也就是fjh的最大值就是状态栏在目录区域下边位于程序界面底部鼠标移动到输入框上时状态栏中显示其替换码。编辑窗口与目录区域各行目录文件所各自对应通过便捷的办法链接起来从上到下分为“概览区域”“输入区域”“状态栏”三个部分。窗口大小默认全屏可缩小为900和600不限制最小最大尺寸并可拖动调整大小并记忆大小。上半部分为编辑概览区域通过引用“概览类”来实现。这个区域的作用是将目录区域的内容引进来给他们替换码来统一参与编辑窗口所对应的模板文件内容替换。第1至行从左到右是按钮。第1个为模板文件选择按钮点击之后选择“模板”文件夹中的文件。两个不同的编辑窗口不能选择同一个文件。第2个为调整格式复选框默认值为选中用于替换时选择是否带格式替换。第3个为保存并退出功能按钮、四4个为不保存退出功能按钮。概览区域第2至4行是输入框其名称可自定义。默认显示文号、责任者、题名、中文日期、页号、密级、添加名称、备注的对应名称和内容替换码为bjwh、bjzrz、bjtm、bjrq、bjyh、bjmj、bjtjmc、bjbz。其中各个输入框默认自动连接目录区域该行的各个列的对应内容除了其中“中文日期”是链接目录区域的该行日期之后把默认值内容直接由日期内容转化为中文日期例如20251010转化为2025年10月10日。其中的添加名称输入框默认为空用于执行批量输出程序时给模板文件添加名称如果有内容则输出时会在另存时把内容加到模板文件原文件之前。题名默认宽度80其他输入框默认宽度20。编辑窗口第5行及以下直到状态栏是输入区域使用表格类来实现。该输入区域标题栏左到右依次是复选框、序号、十个空白标题栏、备注。十个默认空白标题栏支持手动改名。输入行默认显示15行。复选框均默认选中如果未选中则该行在输出时不参与替换。每行的序号列为1列按内容自动从1开始向下累加。对本表格的每列进行判断如果该列输入的全是数字或引用返回的数字但没有其他文本则自动显示该列的求和结果写入表格的最下边一行对应列。但是编辑窗的的输入区域可以编辑每个输入框内容但不可以再进入编辑窗口。编辑窗口最下边一行是状态栏。导出程序先按目录区域的目录行顺序执行编辑窗口批量导出然后执行目录区域导出。注意模板文件里的替换内容之外的其他内容均需保留因此操作中不得覆盖内容只能替换、插入一、编辑窗口导出使用单独的类实现。首先判断该窗口的“模板文件选择”是否为空为空则跳过这个编辑窗口如果有模板文件则继续导出规则如下以其中一个目录文件关联的编辑窗口为例先按该编辑窗口的替换文件名列表找到“模板”文件中的对应文件然后判断文件类型、X情况再来逐一按替换规则和转换规则进行替换。替换规则替换码初始值是bjth则代表编辑窗口的输入区域可执行被勾选的所有行、从1列开始的所有列。其数据参数形式为bj{行数范围}.{列数范围}th。例如如果文件中为bj1-10.1th则代表要替换的是编辑列表中1至10行的第1列内容注意序号列为1列bj1-5.3-4th则代表要替换的是编辑列表中1至5行第3列到第4列的列表内容为bj1-3.5th则代表要替换的是编辑列表中1至3行中第5列的列表内容为bj1-3.5-th则代表要替换的是编辑列表中1至3行中第5列及向右之后列表内容bj1-3.1-5th则代表要替换的是编辑列表1至3行中第1列至5列之间列表内容为bj1-3.1-th则代表要替换的是编辑列表中1至3行中1列及向右所有有内容的列表内容。替换逻辑是每个列表对应一个表格替换码例如一个xlsx单元格中存在多个编辑替换码则分别替换。例如编辑窗口中列表第一行各列表内容从左到右分别是“企业、开展、结果”某个单元格“bj1.1-2th今年bj1.3th”则该单元格替换结果为“企业开展今年结果”。可见编辑替换码“bj1.1-2th”与“bj1.th1b1.2jth”的效果相同。注意没有替换码的地方不进行替换。转换规则替换前均进行符号转换处理以便将处理后的输入框内容进行替换编辑窗口中输入区域的内容在替换时先进行符号的转换如果表格每个格子中内容只有p就是代表回车符^p。注意是回车符不是软回车符也不是输入内容目的是为了换行。因此输出时应转化为^p在docx文档中就是一个回车换行有多个p就是代表多个回车符^p例如pp代表文档中的^p^p两个回车符如果在处理xlsx文件时p对应转换为CHAR(10)换行符如果是“/。”就是将其左侧输入的内容在执行导出时将其中的所有中文分号“”替换为中文句号“。”如“/”就是将其左侧输入的内容在执行导出时将其中的所有中文分号“”替换为空即删除。判断文件类型分辨是docx或xlsx文件。如果是docx则分为两种情况顺序执行情况1和情况2情况1如果是docx文件则先顺序执行判断1和判断2如果不是则执行情况2。判断1如果文档中发现编辑替换码中有X参数则对每个有X参数的编辑替码逐个执行先组合再替换。即先将复选框被勾选的输入行在替换规则范围内每行从左到右将内容不包含复选框及序号进行逐行整合、赋予格式判断、逐个替换期间不忽略内容为空的列表而是将其视为空例如对于文档发现带X参数的替换码则逐行读取每行内容如果有后缀例如bjX1-3.2th则只逐行处理1至3行的第2列。bjX1-3.2-4th则只逐行处理1至3行的第2至4列。逐行整合第一个输入行的所有内容经转化为“一、基本情况。^p一资产负债^p净资产。^p”第二个输入行的所有内容经转化为“二、其他情况。^p二权益负债^p收益。^p”则首先认为“一、基本情况。”和“二、其他情况。”以“一、二、三、”这样的每段开头中文序号带中文顿号开始的文字段是一级标题目录级别为1级格式为黑体不加粗首行缩进2个字符。其次“一资产负债”和“二权益负债”这样以“一二三”这样的每段开头中文序号带左右括号的开始的文字段为二级标题目录级别为2级从开始到回车或句号或冒号结尾范围内的文字格式为楷体_GB2312不加粗目录级别为2级左对齐首行缩进2个字符。最后认为“净资产。”没有以上两种特征的文字段目录级别是正文格式为仿宋_GB2312不加粗首行缩进2个字符。如果模板文档中已经定义了标题样式则覆盖。则在文档中X字母以及替换码将被替换为“一、基本情况一资产负债净资产。二、其他情况一权益负债。收益。”至此该文字行的已调整好格式并暂存随后以此类推处理以下的各个行按格式判断的要求调整好格式后加入暂存全部行处理完毕后才将编辑替换码替换为暂存内容。然后查找并处理下一个有X参数的替换码。赋予格式判断该编辑窗口的调整格式复选框如果不选中则以无格式文本粘贴以延续文档原有格式如果选中则进行替换并执行调整格式功能。最后将编辑窗口引用列表的内容按对应关系统一替换文档中的所有替换码可能同样的替换码会有多个。判断2优先处理完所有X判断后如果判断文档中所有剩余的编辑替换码没有X参数了则执行模板先分份后循环替换。具体如下首先判断编辑窗口中已勾选的替换码对应的范围的输入区域列表中的有内容且勾选的总行数这就是要替换几份然后将文档内容保持原格式在缓存中复制为对应份数为了保证输出格式可以先不复制分页符后每份末尾添加分页符最后一份如果最后有分页符则删除该分页符。期间第一份文档的编辑替换码按列号作为无格式文本逐个写入编辑窗口中列表对应行的内容第二份文档的编辑替换码替换为下一行的内容以此类推完成所有页的替换如果每一行替换范围是多个列则从左到右顺序读取写入。例如如果编辑窗口中列表第一行各列表内容从左到右分别是“企业、开展、结果”。文档内容第一份为“bj1.1th今年bj1.2th了。获得bj1.3th。”则执行替换规则第一页的替换结果为“企业今年开展了。获得结果。”编辑窗口中列表第二行各列内容从左到右分别是“单位、执行、结果”。文档内容第二份的替换结果为“单位今年执行了。获得结果。”然后将各份文档保留原格式按循序合并为一个文档。然后将文档中所有“ 年 月 日”无格式替换为“日期”的内容注意不改变文档中文本格式。最后将引用区域的内容按对应关系统一替换文档中的替换码。至此完成了编辑窗口的导出。情况2如果是xlsx文件则先执行判断后按替换规则、转换规则进行替换首先得出编辑窗口的输入区域中有内容且勾选的输入行数然后将xlsx文档内容对应行保持原格式逐步向下逐行复制对应数量的行期间每复制一行就把有编辑替换码的内容进行替换然后对应复制后替换下一行逐行进行。注意不改变文件涉及行的各单元格原格式维持列宽不变。然后将文档中所有“ 年 月 日”无格式替换为“日期”的内容注意不改变文档中文本格式。接着将引用区域的列表的内容统一替换该文档中的替换码。至此完成了一个编辑窗口的导出。二、目录区导出规则如下通过单独的类实现。要求是首先判断目录模板文件是否存在不存在则跳过存在则继续按照顺序对档案目录四个单元窗口的列表内容逐个模板文件中其四个单元的目录替换码分别为mltha、mlthb、mlthc、mlthd。然后按导出规则、转换规则、表头复制、替换写入、逐行进行分离判断把文件找到的编辑替换码逐行、从左到右替换每行循环。未勾选的行则跳过不导出。注意未勾选的行的编辑窗口信息正常导出。导出规则如下以其中第一单元为例目录替换码是mltha则代表可执行被勾选的从1行及其向下的所有行、从1列开始及其向右的所有列。其数据参数形式为ml{行数范围}.{列数范围}tha。如果文件中为ml1-5.1tha则代表要替换的是目录列表中1至5行的第1列输入框内容为ml1-5.3-4tha则代表要替换的是编辑列表中1至5行第3列到第4列内容为ml1-3.5tha则代表要替换的是编辑列表中1至3行中第5列为ml1-5.5-tha则代表要替换的是编辑列表中1至5行中第5列及其向右列的内容为ml1-5.1-5tha则代表要替换的是编辑列表中1至5行中第1列至5列。表头复制先复制文档中1至6行的表头内容到缓存中以便随后的多次插入接着执行写入程序操作最后执行输出程序。保留原格式有单元边框保留里边的合并单元格。替换写入模板文档中各行查找单元格内的目录替换码并按照与编辑窗口导出的情况2相同方法按目录区域先从左到右再从上到下顺序把勾选行内容按导出规则替换输出文件的第一个工作表。注意替换时维持原单元格的字体、字号、左右居中等格式不变。例如某一行有两个单元格存在替换码ml1-2.1tha、ml1-2.2tha则首先得出编辑窗口的输入区域中有内容且勾选的输入行数为1、2两行然后将xlsx文档内容对应行保持原格式逐步向下逐行复制对应数量的两行期间此行对应替换ml1.1tha、ml1.2tha内容每复制一行就把有编辑替换码的内容进行替换然后对应复制后在下边插入复制内容后替换下一行对应替换ml2.1tha、ml2.2tha如此逐行进行。并且每写一行后执行一次分离判断。分离判断每写入一行之后为了正确分页、分卷都要首先进行一次分离判断包括以下内容1、行高合计行高变量为DHG用于通过每行“题名列”内容的字数确定xlsx文件中的行高算法为每个汉字和标点算1英文、数字算0.5个字数每15为一个级别。如该行题名列字数≤15行高DHG15*1102516≤字数≤30算两行行高DHG15*21040,31≤字数≤45算三行行高DHG15*31055。以此类推单位为磅。{最少为1且取整数字数/15}*1510行高变量BHG用于通过每行的“文号列”单元格确定行高算法为每6个字一个级别每个汉字和标点算1英文、数字算0.5个字数。如该行文号列字数≤12行高BHG10*1102513≤字数≤17算两行行高BHG15*21040,31≤字数≤45算三行行高BHG15*31055。以此类推单位为磅。{最少为1且取整数字数/6}*1510行高变量CHG用于通过每行的“责任者列”单元格确定行高算法为每4个字一个级别每个汉字和标点算1英文、数字算0.5个字数。如该行责任者列字数≤4行高CHG10*110255≤字数≤8算两行行高CHG15*21040,9≤字数≤12算三行行高CHG15*31055。以此类推单位为磅。{最少为1且取整数字数/4}*1510该行的行高HG为该行DHG、BHG、CHG的最大值调整该行行高为HG本页内截止本行输入的所有行高HG累加的结果再加上25*Ns为行高合计值就是HGhj。Ns初始为0且小于5模板文件中每个单元的开头初始默认有一个高度25的行如果在每页有一个单元的开头行Ns就加1有两个就加2。因此Ns默认值为0本页如果每开始写入一个新的单元Ns1并且下一页Ns会清零。分卷数(即卷号)变量“fjh”初始值为1。页码变量ym的初始值为1。2、结尾操作如果写完一行之后判断是否完成了四个单元的所有写入没完成开始分卷判断完成了则开始结尾操作。将当前写入行的向下添加wc行行高25并将这些行单元格边框设置为细边框并wc的值为(ygd-HGhj)/25的结果取 整数结果为负数则不添加行。然后将文档中fjh替换写入其中分卷数的变量fjh的值然后将文件中所有zjh替换为fjh的值即最后的总卷数就是整体总卷号。执行页码操作。然后然后跳过分卷判断和分页判断执行输出程序结束目录区导出程序。3、分卷判断如果本卷已写入的包括本行的各行页数相加的变量卷页数jys不区分单元、只区分卷结果如果不大于代码fjys的值则不执行分卷操作转而执行分页判断。大于分卷页数的代码fjys的值则执行分卷判断。首先当前写入行的向下添加wc行行高25并将这些行单元格边框设置为细边框。并wc的值为(ygd-HGhj)/25的结果取整数结果为负数则不添加行。执行然后将文档中的fjh替换写入其中分卷数的变量fjh的值执行页码操作。重置页码“ym”为1重置jys的值、行高合计HGhj的值为0分卷数(即卷号)变量“fjh”值加1。在页码操作行的下一行插入分页符接着在下边行插入之前复制的1至6行的表头内容。跳过分页判断直接进入目录区导出程序的下一次循环。4、分页判断判断当前行的本页HGhj如果小于页高度ygd的值继续写入下一行否则执行分页判断。执行一次页码操作。随后的页码变量“ym”累加1重置HG、Ns的值为0。在页码操作行的下一行插入分页符接着在分页符下边插入之前复制的1至6行的表头内容然后进入目录区导出程序的下一次循环。5、页码操作在HGhj不小于页高度ygd的值的行或添加wc行之后的下边插入一行无外边框行高14在F列写入内容为“第{ym}页”格式为宋体1不加粗2,该内容左右居中。6、输出程序结尾操作后,将引用区域的列表的内容按对应关系统一替换该文档中的替换码。

更多文章