ExcelVBA把当前工作表导出为PDF文档

我们先问问Kimi

|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Excel导出为PDF的方法有多种,以下是一些常见的方法: 1. 1 使用Excel软件的内置功能: * 打开Excel文件,点击"文件"菜单。 * 选择"另存为",在"保存类型"中选择"PDF"。 * 设置保存路径和文件名,点击"保存"。 2 通过Excel的"输出为PDF"功能: * 在Excel中,点击"文件"菜单下的"输出为PDF"。 * 选择"当前工作表"或"整个工作簿"。 * 指定保存路径,点击"开始输出"。 3 使用"创建PDF/XPS"选项: * 在Excel中,点击"文件"菜单中的"导出"。 * 选择"创建PDF/XPS",在弹出的对话框中设置保存路径和文件名。 * 如果需要将整个工作簿保存为PDF,点击"选项...",选择"整个工作簿",然后点击"确定"并发布。 7 在Office桌面应用中保存或转换为PDF或XPS: * 使用Microsoft Office程序,可以另存或转换文件为PDF格式。 56 使用在线转换服务: * 将Excel文件拖放到在线转换工具的指定区域,或通过"选择文件"按钮上传。 * 根据提示操作,转换完成后下载PDF文件。 4 使用编程语言如Java进行转换: * 通过编程方式,可以使用特定的库(如iText)来动态生成PDF,并将数据插入到PDF模板中。 每种方法都有其适用场景,可以根据个人需求和操作习惯选择最合适的一种。例如,如果需要频繁进行转换,可能更倾向于使用编程方式自动化处理;如果只是偶尔转换单个文件,使用Excel内置功能或在线服务可能更为便捷。 |

综上,我们还是利用ExcelVBA的方法是最好的方法:

也可以后期制作在VSTO插件中

下面是完成的代码

功能:

1.代码自动检测是否存在打印区域,若有,导出打印区域,若无,导出整表

2.导出的文件保存在原文件的根目录中,命名为:原文件_out.pdf

properties 复制代码
Sub ExportActiveSheetToPDF()
    Dim ws As Worksheet
    ' 指定要导出的工作表,这里假设是要导出活动工作表
    Set ws = ActiveSheet
    ' 获取并设置PDF文件名
    Dim filePath As String
    filePath = ThisWorkbook.path & "\" & ws.Name & "_out.pdf"
    ' 使用工作表的PrintArea属性获取打印区域
    With ws
        .pageSetup.CenterFooter = "第 &P 页 / 共 &N 页"
        If .pageSetup.printArea <> "" Then
            ' 如果设置了打印区域,则导出该区域
            .ExportAsFixedFormat Type:=xlTypePDF, _
                    Filename:=filePath, _
                    OpenAfterPublish:=False, _
                    IgnorePrintAreas:=False
        Else
            ' 如果未设置打印区域,则导出整个工作表
            .ExportAsFixedFormat Type:=xlTypePDF, _
                    Filename:=filePath, _
                    OpenAfterPublish:=False
        End If
    End With
    MsgBox "PDF已成功创建并保存到:" & filePath
End Sub

关注,有更多文章

相关推荐
泡海椒4 小时前
jquick-pdf 防止 PDF 内容分页断裂:keepTogether 属性妙用
java·开发语言·pdf
泡海椒7 小时前
jquick-pdf 文本元素实战:段落、行内文本、制表符用法详解
java·开发语言·pdf
SamChan901 天前
Python 处理小语种 PDF 的编码坑:重音字符、连字与 (cid:xx) 乱码的解决方案
python·ai·pdf·机器翻译
微咣科技1 天前
平台化工业AI再突破|大捷智能携手岚图汽车,打造车身焊装智能设计行业标杆
pdf·音视频
我滴老baby1 天前
工业物联网数据库选型:把计算能力放回第一维度
数据库·人工智能·架构·pdf
SamChan901 天前
多栏PDF阅读顺序重建:用Python按坐标聚类还原双栏论文的翻译顺序
python·ai·pdf
浩风祭月1 天前
ChatGPT上传PDF后漏读图表?文字版、扫描件和图片要分开处理
人工智能·chatgpt·pdf·提示词·办公效率
pengzhang1301 天前
在线改 PDF 文字,我把三个网站用同一份文件实测了一遍
pdf·工具·pdf编辑·在线免费·niubai.vip
泡海椒1 天前
告别 iText 繁杂配置:jquick-pdf 极简 PDF 生成实战(零基础上手)
java·开发语言·pdf
Saruka的男朋友2 天前
不上传文件也能转格式?拆解一个纯浏览器端的 EPUB 工具链的设计思路
pdf·epub·eink