Grafiği Microsoft Excel'de bir PNG veya GIF dosyasına nasıl kaydedebilirim?


27

Grafiği Microsoft Excel'de bir PNG veya GIF dosyasına nasıl kaydedebilirim?

Bir HTML dosyası olarak kaydedebildiğimi ve orada oluşturulan resmi kullanabileceğimi biliyorum, ancak istemediğim diğer dosyaları karışık olmayan bir yol olduğunu düşünüyorum. Önerilen seçenek buysa, bir eklenti kurmaktan mutlu olurum.

Önemli olursa Excel 2003 ve 2007 kullanıyorum.


İşte bir açıklama ve sizin için yapacak olan bir Excel Eklentisine (ücretsiz) bir bağlantı: Geliştirilmiş İhracat Şeması Prosedürü
Jon Peltier

Yanıtlar:


34

Excel bu işlev için kullanıcı tarafından erişilebilir destekten yoksun, ama ya kolayca bu geçici veya bu işlevselliği VBA, giriş kazabilirim edilir sağlanan:


"Tek atış" ihracat

  • Grafiği seçin (grafiğin tamamı, dahili bir bileşen değil; bu nedenle kenarlığı seçin).
  • Kopyala (ctrl-c, kopyala, sağ tıkla, ne istersen).
  • MS Paint'i açın.
  • Yapıştır (önce görüntü boyutunu küçültmek isteyebilirsiniz, sığacak şekilde büyütülür ancak küçültülür).
  • İstediğiniz gibi kaydedin.

Toplu ihracat

Muhtemelen ActiveChart.Exportbir VBA makrosunda kullanmaya bakmak istersiniz , bu bir dosya yolu belirlemenizi ve ardından Excel'in işi yapmasını sağlar.

Aşağıda daha önce bir araya getirdiğim çalışan bir prototip. Bunu çalıştırın ve aktif çalışma kitabındaki her grafik o dosyayla aynı klasöre, PNG formatında _chart##dosya adına eklenmiş olarak (burada ##artan sayıdır) dışa aktarılacaktır .

O değil herhangi bir güvenlik kontrolleri (böylece dosyalarının üzerine olacak!) Gerçekleştirmek ve yok hata denetimi içerir. Bu olmaz önler dosyanın konumuna yazma olduğunu henüz çalışma kitabını kaydetmediyseniz, konumu salt okunur veya başka bir şey çalışırlar. Bunu yalnızca Excel 2003'te test ettim (şu anda elimde olan tek şey bu).

Diğer bir deyişle: Kullanmak kendi sorumluluğunuzdadır , bu sadece temel bir çalışma örneği olarak düşünülmüştür .

'small nicety to ensure two-digits for better file sorting'
Function NiceFileNumber(num As Integer) As String
    If num < 10 Then
        NiceFileNumber = "0" & num
    Else
        NiceFileNumber = num
    End If
End Function

'the real function'
Sub ExportAllCharts()
    Dim i As Integer, exportCount As Integer
    Dim fileNum As String, fileBase As String
    Dim sheetObj As Worksheet
    Dim chartObj As Chart

    'current file location and name, with extension stripped'
    fileBase = Left(ThisWorkbook.FullName, InStrRev(ThisWorkbook.FullName, ".") - 1)
    exportCount = 0

    'First, export all charts that are in their own sheets'
    For Each chartObj In ActiveWorkbook.Charts
        fileNum = NiceFileNumber(exportCount)
        exportCount = exportCount + 1

        'Do the export'
        chartObj.Export fileBase & "_chart" & fileNum & ".png"
    Next

    'Then, export all charts that are embedded inside normal sheets'
    For Each sheetObj In ActiveWorkbook.Worksheets
        For i = 1 To sheetObj.ChartObjects.count
            fileNum = NiceFileNumber(exportCount)
            exportCount = exportCount + 1

            'Do the export'
            sheetObj.ChartObjects(i).Activate
            ActiveChart.Export fileBase & "_chart" & fileNum & ".png"
        Next i
    Next
End Sub

Not: Yorumların 'her iki ucunda da yer aldım , bu gerekli değil, ancak doğru bir şekilde renklendirildiklerinden emin olmaya yardımcı oluyor.


Bir düğmeye basıldığında geçerli elektronik tabloyla aynı klasöre dışa aktarmanın bir yolunu tercih ederim
fmark

@fmark - Makronun girdiği yer, ActiveChart.Export ActiveWorkbook.Path & "\chart.png"araç çubuğuna bağlı bir makroda olduğu gibi (ama belki biraz daha akıllı!) bir işi yapardı.
DMA57361

@ fmark sıkıldım ve birkaç dakikam vardı, bu yüzden birlikte çok daha eksiksiz bir şey atmıştım. Düzenlemeye göz atın, size gerçekten sağlam bir başlangıç ​​noktası vereceğini düşünüyorum.
DMA57361

Şerefe! Ona bir koşuşturma vereceğim.
fmark

4

En iyi yol Excel dosyasını HTML olarak kaydetmektir.

Ardından görüntülerin saklandığı klasöre gidin ve istediğiniz PNG görüntülerini göreceksiniz.


Bunun gerçekten en hızlı yöntem olduğuna tamamen katılıyorum. Bugüne kadar.
Jeef

3

PNG'ye güvenle dönüştürmek için, şekli Excel'den kopyalayabilir, Power Point'teki slayda yapıştırabilir ve sonra aşağıdakileri yapabilirsiniz.

Farklı KaydetDiğer Biçimler , ardından istediğiniz biçimi seçin. Daha sonra bunu yalnızca geçerli slayta mı yoksa tüm slaytlara mı uygulamak istediğinizi soracaktır. Tüm slaytları seçerseniz, belirttiğiniz dizinde bir klasör oluşturur ve her slaytı seçilen biçimde kendi dosyasına kaydeder.

Çok zarif değil, ancak dosyalara ihtiyacınız olduğunda yeterince hızlı olabilir ve özellikle aynı grafiklerle bir sunum yaptıysanız özellikle yararlıdır.


2

Eski konu, ancak Google’dan başka birinin buraya girmesi durumunda: Mac için Excel 2011'de, tam olarak bunu yapmak için sağ tıklama menüsünde "Resim Olarak Kaydet" seçeneği vardır.


Excel'in hangi sürümü? Benim Excel 2007 kesinlikle buna sahip değil. 7 yaşındaki bir Ofise bağlı kalmak muhtemelen "maliyet tasarrufu önlemi" dir.
Ogre Psalm33

Mac için Excel 2011 kullandığım şey.
Dave Mulligan

0

Excel 2010'da bunu yaparak yapabilirsiniz:

  1. Seçmek için grafiği tıklayın.
  2. CTRL + C kullanarak veya sağ tıklayıp Kopyala'yı seçerek kopyalayın.
  3. Bir grafik düzenleme programına geçin ( Paint.net kullandım ).
  4. Yapıştırmak.

Ardından, lütfen istediğiniz formatta görüntüyü kaydedebilirsiniz.


0

Eğer kullanıyorsanız Greenshot (bir ekran yakalama yazılımı), o zaman Excel (grafiği kopyalayabilirsiniz Ctrl+ C), sonra, Greenshot simgesini sağ tıklatıp seçin panodan Açık görüntü ve kaydedin. Grafik editörü kullanmanıza gerek yok.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.