You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Excel创建报表模板跨工作表取数批量生成命名PDF

方案1:Excel VBA 内置方案(无需额外安装软件)

无需下载其他工具,直接用Excel自带功能实现,适配你的现有工作流:

  • 提前确认工作簿结构并按需调整后续代码参数:
    • 存储产品信息的工作表命名为产品清单,A列为产品名称、B列为合同起始日期、C列为合同终止日期,数据从第2行开始(第1行为表头)
    • 报表模板工作表命名为报表模板,产品名称填充单元格假设为B2、合同起始日期填充单元格为B3、合同终止日期填充单元格为B4
  • 按Alt+F11打开VBA编辑器,右键点击当前工作簿名称,选择「插入」-「模块」,粘贴如下代码:
Sub 批量生成报表PDF()
    Dim 产品清单 As Worksheet, 模板 As Worksheet
    Dim 最后行 As Long, i As Long
    Dim 导出路径 As String, 文件名 As String
    
    ' 绑定工作表对象
    Set 产品清单 = ThisWorkbook.Worksheets("产品清单")
    Set 模板 = ThisWorkbook.Worksheets("报表模板")
    
    ' 导出路径默认和当前Excel文件同文件夹
    导出路径 = ThisWorkbook.Path & "\"
    
    ' 获取产品清单最后一行有效数据行号
    最后行 = 产品清单.Cells(产品清单.Rows.Count, "A").End(xlUp).Row
    
    ' 遍历所有产品生成报表
    For i = 2 To 最后行
        ' 填充模板可变字段
        模板.Range("B2").Value = 产品清单.Cells(i, "A").Value
        模板.Range("B3").Value = 产品清单.Cells(i, "B").Value
        模板.Range("B4").Value = 产品清单.Cells(i, "C").Value
        
        ' 刷新模板所有公式计算结果,若有透视表可下方加一行模板.RefreshAll
        Calculate
        
        ' 处理文件名非法字符
        文件名 = Replace(Replace(Replace(产品清单.Cells(i, "A").Value, "/", ""), "\", ""), ":", "") & ".pdf"
        
        ' 导出PDF
        模板.ExportAsFixedFormat _
            Type:=xlTypePDF, _
            Filename:=导出路径 & 文件名, _
            Quality:=xlQualityStandard
        
        ' 产品清单D列标记生成状态,用于核对
        产品清单.Cells(i, "D").Value = "已生成"
    Next i
    
    MsgBox "生成完成,共导出" & 最后行 - 1 & "份PDF"
End Sub
  • 回到Excel界面按Alt+F8选择宏「批量生成报表PDF」点击运行即可,生成的PDF会保存在当前Excel文件所在的文件夹内。
方案2:Python 方案(适合后续有扩展需求的场景)

如果后续需要对接其他系统、增加更复杂的报表逻辑,可以用Python实现,核心依赖为openpyxl和pywin32库:

  • 用openpyxl读取产品清单工作表的全量产品数据
  • 循环遍历每条数据,写入模板对应可变字段后保存为临时文件
  • 调用pywin32的Excel接口,将临时文件导出为以产品名称命名的PDF文件即可。

内容的提问来源于stack exchange,提问作者StackQA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 15:54:08