使用COM Automation时,Excel Sparklines未导出为PDF

使用COM Automation时,Excel Sparklines未导出为PDF,pdf,com,excel-2010,sparklines,Pdf,Com,Excel 2010,Sparklines,我在以编程方式将包含气泡线的Excel工作表导出为PDF格式时遇到问题 当我使用Excel 2010的原生PDF导出工具手动将Excel工作表导出为PDF格式时,一切都正常工作,但当我使用简单的COM自动化进行导出时,所有内容都会导出为PDF格式,但包含小气泡的单元格除外 奇怪的是,当我在excel工作表中添加一些数据条时,数据条附近的小火花线突然被导出,但距离数据条更远的小火花线却没有导出 我已经在多台不同的机器和操作系统上验证了这些问题。这可能与下面的问题有关 我使用的是下面非常简单的VB.

我在以编程方式将包含气泡线的Excel工作表导出为PDF格式时遇到问题

当我使用Excel 2010的原生PDF导出工具手动将Excel工作表导出为PDF格式时,一切都正常工作,但当我使用简单的COM自动化进行导出时,所有内容都会导出为PDF格式,但包含小气泡的单元格除外

奇怪的是,当我在excel工作表中添加一些数据条时,数据条附近的小火花线突然被导出,但距离数据条更远的小火花线却没有导出

我已经在多台不同的机器和操作系统上验证了这些问题。这可能与下面的问题有关

我使用的是下面非常简单的VB.NET代码。我尝试过使用各种设置和变量,但运气不好

Public Class Form1

    Enum XlFixedFormatType
        xlTypePDF = 0
        xlTypeXPS = 1
    End Enum

    Enum XlUpdateLinks
        xlUpdateLinksUserSetting = 1
        xlUpdateLinksNever = 2
        xlUpdateLinksAlways = 3
    End Enum

    Enum XlFixedFormatQuality
        xlQualityStandard = 0
        xlQualityMinimum = 1
    End Enum

    Private Sub buttonConvert_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles buttonConvert.Click
        Dim pdf As String = Convert("C:\Sparkline.xlsx")
        Process.Start(pdf)
    End Sub

    Public Function Convert(ByVal fileName As String) As String
        Dim outPutFilename As String, printObject As Object = Nothing
        Dim app As Object      '** In reality this is a Microsoft.Office.Interop.Excel.Application
        Dim doc As Object      '** In reality this is a Microsoft.Office.Interop.Excel.Workbook

        app = CreateObject("Excel.Application")

        '** Open the _document
        doc = app.Workbooks.Open(fileName:=fileName, _
                                   UpdateLinks:=XlUpdateLinks.xlUpdateLinksNever, _
                                   ReadOnly:=True, _
                                   AddToMru:=False, _
                                   IgnoreReadOnlyRecommended:=True, _
                                   CorruptLoad:=True, _
                                   Editable:=False)

        '** Set visible sheets depending on selected range
        printObject = app.ActiveWorkbook.ActiveSheet

        '** Write the file under the same name, but with different extension
        outPutFilename = System.IO.Path.ChangeExtension(fileName, "pdf")

        printObject.ExportAsFixedFormat(Type:=XlFixedFormatType.xlTypePDF, _
                                fileName:=outPutFilename, _
                                quality:=XlFixedFormatQuality.xlQualityStandard, _
                                IncludeDocProperties:=False, _
                                IgnorePrintAreas:=False, _
                                OpenAfterPublish:=False)

        doc.Close(False)
        app.Quit()

        '** Return the name of the converted file
        Return outPutFilename

    End Function

End Class

我已经联系过微软的技术支持人员,他们已经承认这是一个bug。产品团队正在考虑将其包含在未来的服务包中


在此之前,在执行导出之前使应用程序可见将解决问题。如果您不想让用户看到它,则可以将窗口定位在屏幕外。

我已与Microsoft支持部门联系,他们已确认这是一个错误。产品团队正在考虑将其包含在未来的服务包中

在此之前,在执行导出之前使应用程序可见将解决问题。如果您不想让用户看到它,那么您可以将窗口定位在屏幕外