繁体   English   中英

将 Excel 电子表格另存为 PDF

[英]Save Excel spreadsheet as PDF

我正在尝试使用 Visual Basic 将 Excel 电子表格保存为 PDF 文件。 我在网上找到了一些示例代码(见下文),但它让我打开了一个 Visual Basic 似乎不再识别的 Workbook 对象。 建议...

                       ' load Excel file
        Dim workbook As New Workbook()
        workbook.LoadFromFile("D:\test.xlsx")

        ' Set PDF template
        Dim pdfDocument As New PdfDocument()
        pdfDocument.PageSettings.Orientation = PdfPageOrientation.Landscape
        pdfDocument.PageSettings.Width = 970
        pdfDocument.PageSettings.Height = 850

        'Convert Excel to PDF using the template above
        Dim pdfConverter As New PdfConverter(workbook)
        Dim settings As New PdfConverterSettings()
        settings.TemplateDocument = pdfDocument
        pdfDocument = pdfConverter.Convert(settings)

        ' Save and preview PDF
        pdfDocument.SaveToFile("sample.pdf")
        System.Diagnostics.Process.Start("sample.pdf")

您可以使用.ExportAsFixedFormat函数来更简单,例如

Dim workbook As New Workbook()
workbook.LoadFromFile("D:\test.xlsx")

workbook.activesheet.ExportAsFixedFormat xlTypePDF, "D:\test.pdf"

纳奇答案的后期版本..

Option Strict Off 'Required for Late Binding     

Module XL
  Sub ExcelPDF()
    Dim xl As Object
    xl = CreateObject("Excel.Application")
    Dim xwb As Object = xl.Workbooks.Open("D:\test.xlsx")
    xwb.ActiveSheet.ExportAsFixedFormat(0, "D:\sample.pdf")
    xl.Quit()
  End Sub
End Module

PS 我建议使用 Office PIA 进行开发(因此您可以获得 Intellisense 和帮助),然后在发布之前切换到后期绑定,这样您就不会被锁定到特定版本的 Office(同样,因此您不需要分发PIA 与您的应用程序)

这只是您如何从 Excel 或就此而言创建 PDF 的方法之一 - 您可以以编程方式访问的任何程序(以扩大您的经验)。 它是通过使用虚拟打印机。 你会需要

  • 下载虚拟 PDF 打印机(许多可用,有些是免费的)。 此外,了解任何给定打印机创建的 PDF 类型 -光栅 pdf矢量 pdf 光栅创建更大的文件。
  • 安装它(虚拟打印机)
  • 在代码中 - 您通常设置打印机属性,然后
  • 您在代码中使用互操作打开 excel 并调用Print ,在其中设置打印机 - 您的虚拟 PDF 打印机,并根据打印机设置选项“打印到文件”。 某些虚拟打印机不需要,因为您预设了它们的属性或什至(某些打印机)注册表项,您可以在其中设置文件名。

代码示例通常可从打印机供应商处获得。 还有更多不同的相关博客。 谷歌“.net 虚拟打印机”

我的想法是,如果您使用较旧的互操作/excel(对不起,我真的不能告诉版本被切断)-这是唯一的方法。

工作簿不是 Excel Interop 类,也不是 System 类。 此示例代码基于Spire.XLS ,这是一个 3rd 方组件,它使用户能够在 .NET 中操作 Excel 文件。 在运行程序之前,您需要下载 DLL 并将其引用到您的项目中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM