如果xlsx的sheet2中D2不为空则将r'D:\好记薪\工商资料生成\A公司登记申请书.docx'加之模板末尾并保留格式, 如果xlsx的sheet2中E2不为空则将r'D:\好记薪\工商资料生成\B股东会决议.docx'加之模板末尾并保留格式, 如果xlsx的sheet2中F2不为空则将r'D:\好记薪\工商资料生成\C章程.docx'加之模板末尾并保留格式, 如果xlsx的sheet2中G2不为空则将r'D:\好记薪\工商资料生成\D股权转让协议.docx'加之模板末尾并保留格式, 如果xlsx的sheet2中H2不为空则将r'D:\好记薪\工商资料生成\E有关债务清偿及担保情况说明.docx'加之模板末尾并保留格式.

时间: 2023-07-21 20:42:06 浏览: 47
你可以使用 openpyxl 库来读取 Excel 文件,然后根据单元格的值来添加不同的文档到模板末尾。以下是示例代码: ```python from openpyxl import load_workbook from docxcompose.composer import Composer from docx import Document # 加载 Excel 文件 wb = load_workbook(r'D:\好记薪\工商资料生成\表格.xlsx') sheet = wb['Sheet2'] # 获取需要加入模板的文档路径 docx_files = [] if sheet['D2'].value: docx_files.append(r'D:\好记薪\工商资料生成\A公司登记申请书.docx') if sheet['E2'].value: docx_files.append(r'D:\好记薪\工商资料生成\B股东会决议.docx') if sheet['F2'].value: docx_files.append(r'D:\好记薪\工商资料生成\C章程.docx') if sheet['G2'].value: docx_files.append(r'D:\好记薪\工商资料生成\D股权转让协议.docx') if sheet['H2'].value: docx_files.append(r'D:\好记薪\工商资料生成\E有关债务清偿及担保情况说明.docx') # 创建模板 Docx template_docx = Document(r'D:\好记薪\工商资料生成\template.docx') # 将需要加入模板的文档逐个加到模板末尾 if docx_files: composer = Composer(template_docx) for docx_file in docx_files: composer.append(Document(docx_file)) composer.save(r'D:\好记薪\工商资料生成\merged.docx') ``` 这里我们使用 openpyxl 库读取 Excel 文件,并在 sheet2 中查找单元格 D2、E2、F2、G2、H2 的值。如果这些单元格的值不为空,则将相应的文档路径添加到 docx_files 列表中。 然后,我们创建一个模板 Docx,并使用 docxcompose 库的 Composer 类将需要加入模板的文档逐个加入模板末尾。最后,我们将合并后的文档保存到指定的路径。 注意,这里我们使用了 try-except 块来捕获可能出现的异常。如果文件路径不正确或文件格式不正确,可能会抛出异常,我们需要捕获并输出错误信息。

相关推荐

### 回答1: 可以使用Microsoft Excel中的"数据透视表"功能将三个表合并到一个表格中,步骤如下:1.打开Excel文件,点击“数据”菜单中的“数据透视表”;2.在弹出的“数据透视表”窗口中,点击“添加”按钮,将b1.xlsx,b2.xlsx,b3.xlsx逐一添加到数据透视表中;3.点击“确定”按钮,将三个表合并到一个表格中,并生成三个sheet。 ### 回答2: 你可以按照以下步骤将三个表格放到一个excel文件的3个sheet中: 1. 打开一个新的Excel文件。 2. 将b1.xlsx的内容复制到新的Excel文件中的第一个sheet中。可以通过右键点击b1.xlsx文件,选择"复制",然后在新的Excel文件中右键点击第一个sheet,选择"粘贴",或使用快捷键Ctrl+V。 3. 在新的Excel文件中创建一个新的sheet作为第二个sheet。 4. 将b2.xlsx的内容复制到新的Excel文件的第二个sheet中,可以采用与第一步相似的方法。 5. 在新的Excel文件中创建一个新的sheet作为第三个sheet。 6. 将b3.xlsx的内容复制到新的Excel文件的第三个sheet中,同样可以采用与前两步类似的方法。 7. 保存新Excel文件。点击文件菜单,选择"保存",然后输入文件名并选择保存的位置。 8. 确认保存选项,点击保存,这样新的Excel文件将包含三个sheet的内容,分别对应b1.xlsx, b2.xlsx, b3.xlsx的数据。 以上步骤可以让你将b1.xlsx, b2.xlsx, b3.xlsx三个表格放到一个Excel文件的3个sheet中。 ### 回答3: 要将b1.xlsx、b2.xlsx和b3.xlsx放到同一个Excel文件的三个sheet中,可以按照以下步骤进行操作: 1. 打开一个新的Excel文件,命名为b_all.xlsx。 2. 依次打开b1.xlsx、b2.xlsx和b3.xlsx文件。 3. 在b1.xlsx文件中,选择整个工作表(Ctrl+A),然后复制(Ctrl+C)。 4. 切换到b_all.xlsx文件,选择第一个sheet,然后粘贴(Ctrl+V)。 5. 在b2.xlsx文件中重复步骤3和步骤4,将其粘贴到b_all.xlsx文件的第二个sheet中。 6. 在b3.xlsx文件中重复步骤3和步骤4,将其粘贴到b_all.xlsx文件的第三个sheet中。 7. 保存b_all.xlsx文件,并确保在保存时选择一个目标路径。 8. 现在,你已经将b1.xlsx、b2.xlsx和b3.xlsx三个表格放入了一个Excel文件的三个sheet中。 请注意,以上步骤假设你使用的是Microsoft Excel软件。如果使用其他电子表格软件或版本,具体操作步骤可能会有所不同。

最新推荐

Linux下xlsx文件转txt文件.docx

Linux命令行实现在线预览PPT,PPTX,DOC,DOCX,XLS,XLSX文件,可以实现xlsx文件转txt文件,文档内是安装插件详细步骤

基于单片机温度控制系统设计--大学毕业论文.doc

基于单片机温度控制系统设计--大学毕业论文.doc

"REGISTOR:SSD内部非结构化数据处理平台"

REGISTOR:SSD存储裴舒怡,杨静,杨青,罗德岛大学,深圳市大普微电子有限公司。公司本文介绍了一个用于在存储器内部进行规则表达的平台REGISTOR。Registor的主要思想是在存储大型数据集的存储中加速正则表达式(regex)搜索,消除I/O瓶颈问题。在闪存SSD内部设计并增强了一个用于regex搜索的特殊硬件引擎,该引擎在从NAND闪存到主机的数据传输期间动态处理数据为了使regex搜索的速度与现代SSD的内部总线速度相匹配,在Registor硬件中设计了一种深度流水线结构,该结构由文件语义提取器、匹配候选查找器、regex匹配单元(REMU)和结果组织器组成。此外,流水线的每个阶段使得可能使用最大等位性。为了使Registor易于被高级应用程序使用,我们在Linux中开发了一组API和库,允许Registor通过有效地将单独的数据块重组为文件来处理SSD中的文件Registor的工作原

如何使用Promise.all()方法?

Promise.all()方法可以将多个Promise实例包装成一个新的Promise实例,当所有的Promise实例都成功时,返回的是一个结果数组,当其中一个Promise实例失败时,返回的是该Promise实例的错误信息。使用Promise.all()方法可以方便地处理多个异步操作的结果。 以下是使用Promise.all()方法的示例代码: ```javascript const promise1 = Promise.resolve(1); const promise2 = Promise.resolve(2); const promise3 = Promise.resolve(3)

android studio设置文档

android studio默认设置文档

海量3D模型的自适应传输

为了获得的目的图卢兹大学博士学位发布人:图卢兹国立理工学院(图卢兹INP)学科或专业:计算机与电信提交人和支持人:M. 托马斯·福吉奥尼2019年11月29日星期五标题:海量3D模型的自适应传输博士学校:图卢兹数学、计算机科学、电信(MITT)研究单位:图卢兹计算机科学研究所(IRIT)论文主任:M. 文森特·查维拉特M.阿克塞尔·卡里尔报告员:M. GWendal Simon,大西洋IMTSIDONIE CHRISTOPHE女士,国家地理研究所评审团成员:M. MAARTEN WIJNANTS,哈塞尔大学,校长M. AXEL CARLIER,图卢兹INP,成员M. GILLES GESQUIERE,里昂第二大学,成员Géraldine Morin女士,图卢兹INP,成员M. VINCENT CHARVILLAT,图卢兹INP,成员M. Wei Tsang Ooi,新加坡国立大学,研究员基于HTTP的动态自适应3D流媒体2019年11月29日星期五,图卢兹INP授予图卢兹大学博士学位,由ThomasForgione发表并答辩Gilles Gesquière�

MutableDenseMatrix' object has no attribute 'flatten'

根据提供的引用内容,可以看出这是一个关于Python中矩阵操作的问题。具体来说,'MutableDenseMatrix' object has no attribute 'flatten'的错误提示表明,矩阵对象没有名为'flatten'的属性。因此,我们需要使用其他方法来展平该矩阵对象。 以下是一种可能的解决方案: ```python # 导入必要的库 from sympy import Matrix # 创建一个矩阵对象 mat = Matrix([[1, 2], [3, 4]]) # 将矩阵对象转换为列表 mat_list = mat.tolist() # 将列表展平 flat

MySQL 75道面试题及答案.docx

MySQL 75道面试题及答案.docx

HAL多学科开放获取档案库的作用及代理重加密和认证委托的研究

0HAL编号:tel-038172580https://theses.hal.science/tel-038172580提交日期:2022年10月17日0HAL是一个多学科开放获取档案库,用于存储和传播科学研究文档,无论其是否发表。这些文档可以来自法国或国外的教育和研究机构,也可以来自公共或私人研究中心。0HAL多学科开放获取档案库旨在存储和传播法国或国外的教育和研究机构、公共或私人实验室发表或未发表的研究文档。0代理重加密和认证委托的贡献0Anass Sbai0引用此版本:0Anass Sbai. 代理重加密和认证委托的贡献. 离散数学[cs.DM]. 皮卡第朱尔大学, 2021. 法语. �NNT:2021AMIE0032�. �tel-03817258�0博士学位论文0专业“计算机科学”0提交给科技与健康学院博士学位学校0皮卡第朱尔大学0由0Anass SBAI0获得皮卡第朱尔大学博士学位0代理重加密和认证委托的贡献0于2021年7月5日,在评审人的意见后,面向考试委员会进行

已有一个已排好序的数组,要求输入一个数后,按原来的排序规律将它插入数组中

已有一个已排好序的数组,要求输入一个数后,按原来的排序规律将它插入数组中,可以使用二分查找的方法来提高查找效率。具体实现如下: ```python def insert_num(arr, num): left = 0 right = len(arr) - 1 while left <= right: mid = (left + right) // 2 if arr[mid] == num: arr.insert(mid, num) return arr elif arr[m