Экспорт Excel строит диаграмму к wmf или эдс?

можно даже использовать их для layouting, если расположение является несколько табличным. Мне нравится функция таблиц и ячеек, динамично корректирующихся к любой ширине, которая окно браузера. Никогда не используйте фиксированные ширины или высоту, это просто портит вещи.

6
задан Community 9 July 2018 в 18:41
поделиться

4 ответа

This copy, save method worked for me, i put it into 3 sections (declarations, saves as EMF function, and the select/copy/function call section):

*I found this article detailing how to save to EMF then doctored it a bit to use the an ActiveChart instead of a arbitrary selection.

First off a couple declarations:

Option Explicit

Private Declare Function OpenClipboard _
    Lib "user32" ( _
        ByVal hwnd As Long) _
As Long

Private Declare Function CloseClipboard Lib "user32" () As Long

Private Declare Function GetClipboardData _
    Lib "user32" ( _
        ByVal wFormat As Long) _
As Long

Private Declare Function EmptyClipboard Lib "user32" () As Long

'// CreateMetaFileA DeleteEnhMetaFile
Private Declare Function CopyEnhMetaFileA _
    Lib "gdi32" ( _
        ByVal hENHSrc As Long, _
        ByVal lpszFile As String) _
As Long

Private Declare Function DeleteEnhMetaFile _
    Lib "gdi32" ( _
        ByVal hemf As Long) _
As Long

This is the actual save as emf function (the use of CopyEnhMetaFileA and DeleteEnhMetaFile are explained in the article):

Public Function fnSaveAsEMF(strFileName As String) As Boolean
Const CF_ENHMETAFILE As Long = 14

Dim ReturnValue As Long

    OpenClipboard 0

    ReturnValue = CopyEnhMetaFileA(GetClipboardData(CF_ENHMETAFILE), strFileName)

    EmptyClipboard

    CloseClipboard

    '// Release resources to it eg You can now delete it if required
    '// or write over it. This is a MUST
    DeleteEnhMetaFile ReturnValue

    fnSaveAsEMF = (ReturnValue <> 0)

End Function

Then the select, copy, and function call section:

Sub SaveIt()
Charts.Add
    ActiveChart.ChartArea.Select
    Selection.Copy
    If fnSaveAsEMF("C:\Excel001.emf") Then
        MsgBox "Saved", vbInformation
    Else
        MsgBox "NOT Saved!", vbCritical
    End If

End Sub
9
ответ дан 10 December 2019 в 00:39
поделиться

Энди подробно ответил на этот вопрос Здесь .

0
ответ дан 10 December 2019 в 00:39
поделиться

Через эту запись на форуме вы можете найти чудесную страницу Excel Стивена Буллена и загрузить утилиту PastePicture , которая показывает, как вы может экспортировать в формат WMF.

Он в основном копирует диаграмму, вставляет ее в буфер обмена как изображение и сохраняет его содержимое в файл WMF в нескольких строках кода.

1
ответ дан 10 December 2019 в 00:39
поделиться

Забавно, у этого плаката была точно такая же проблема на этом форуме здесь, наткнулся на интересную статью на ExcelForum по этому поводу.

Надеюсь, это вам поможет, С наилучшими пожеланиями, Том.

0
ответ дан 10 December 2019 в 00:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: