VBscript将excel表保存为pdf

时间:2017-04-25 14:12:31

标签: excel vba excel-vba pdf vbscript

我正在研究HTML5项目。 在这个项目中,我想通过单击“生成PDF”按钮创建Excel工作表的PDF。但我的下面的代码不起作用。 有没有办法在不打开Excel文件的情况下从HTML创建Excel工作表的PDF?

<html><head>
<script language="vbscript" type="text/vbscript">
Sub SaveExcelAsPDF ()
    'Save Excel file as a PDF

    'Initialise
    Dim objExcel, objWorkbook
    Set objExcel = CreateObject("Excel.Application")

    'Open the file
    Set objWorkbook = objExcel.Workbooks.Open ("file:\\\D:\\Book1.xlsx")
    objExcel.Visible = True  
    ObjWorkbook.Windows (1).Visible = True  
    Set XlSheet =objWorkbook.Sheets (3)  
    XlSheet.Activate  

    'Save the PDF
    objWorkbook.ExportAsFixedFormat EXCEL_PDF, PathOfPDF(p_strFilePath), EXCEL_QualityStandard, TRUE, FALSE, , , FALSE


    'Close the file and exit the application
    objWorkbook.Close FALSE
    objExcel.Quit
End Sub
</script></head>
<body>
  <center>
    <br>
    <tr>
      <td>
        <input type="submit" onclick="SaveExcelAsPDF()" value="Make PDF" />
        <br> </td>
    </tr>
  </center>
</form></body></html>

1 个答案:

答案 0 :(得分:0)

根据评论(...和提供的代码......),您似乎没有定义函数PathOfPDF(ByVal p_strFilePath),将文件名转换为.pdf -

话虽如此......只需在处理文件路径之前创建一些变量,如下所示:

Sub SaveExcelAsPDF

    Dim objExcel, objWorkbook
    Set objExcel = CreateObject("Excel.Application")

    excelFilePath = "C:\File.xlsx"
    pdfFilePath = Replace(excelFilePath,".xlsx",".pdf")

    Set objWorkbook = objExcel.Workbooks.Open(excelFilePath)
    objWorkbook.ExportAsFixedFormat EXCEL_PDF, pdfFilePath, EXCEL_QualityStandard, TRUE, FALSE, , , FALSE

    objWorkbook.Close FALSE
    objExcel.Quit

End Sub

P.S。您不需要显示Excel窗口以便发布工作...不确定为什么您有代码来显示Excel文件/窗口。