COMオートメーションを使用している場合Excelのスパークラインは、PDFにエクスポートされません
-
25-09-2019 - |
質問
私はプログラム的にPDF形式にスパークラインが含まれているExcelシートをエクスポートする問題を抱えています。
私は手動でのExcel 2010のネイティブPDFエクスポート機能を使用してPDF形式にExcelシートをエクスポートするとそして、すべてが正常に動作しますが、私はそれは、単純なCOMオートメーションを使用しないときは、すべてのものは、スパークラインを含む細胞を除いてPDFにエクスポートされます。
は奇妙なことは、私はExcelシートにいくつかのデータバーを追加するときにデータバーの近くにスパークラインが急に輸出されているということですが、さらに離れたデータバーからのものではありません。
私は、複数の異なるマシンおよびオペレーティングシステム上で、これらの問題を確認しました。これは StackOverflowのの上、次の質問に関連している可能性があります。
私は、非常にまっすぐ進む、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
解決
私は、マイクロソフトのサポートに接触していたし、彼らはそれがバグで認めています。製品チームは、将来のサービスパックに含めるためにそれを見ている。
それまでは、輸出を行う前に、アプリケーションを可視化することで問題を解決します。あなたは、ユーザーがそれを見たくないなら、あなたは画面の外にウィンドウを配置することができます。
所属していません StackOverflow