ฉันจะบันทึกกราฟลงในไฟล์ PNG หรือ GIF ใน Microsoft Excel ได้อย่างไร


27

ฉันจะบันทึกกราฟลงในไฟล์ PNG หรือ GIF ใน Microsoft Excel ได้อย่างไร

ฉันรู้ว่าฉันสามารถบันทึกเป็นไฟล์ HTML และใช้ภาพที่สร้างขึ้นที่นั่น แต่ฉันสงสัยว่ามีวิธีที่ไม่สร้างความยุ่งเหยิงอื่น ๆ ของไฟล์ที่ฉันไม่ต้องการ ฉันยินดีที่จะติดตั้ง Add-in หากเป็นตัวเลือกที่แนะนำ

ฉันใช้ Excel 2003 และ 2007 ถ้าเป็นเช่นนั้น


นี่คือคำอธิบายและลิงก์ไปยัง Excel Add-In (ฟรี) ที่จะทำเพื่อคุณ: ขั้นตอนการเอ็กซ์ปอร์ตแผนภูมิขั้นสูง
Jon Peltier

คำตอบ:


34

Excel ไม่มีการสนับสนุนที่ผู้ใช้สามารถเข้าถึงได้สำหรับฟังก์ชั่นนี้ แต่คุณสามารถหลีกเลี่ยงได้อย่างง่ายดายหรือขุดลงใน VBA ซึ่งมีฟังก์ชั่นนี้ให้ไว้:


การส่งออก "One-shot"

  • เลือกกราฟ (กราฟทั้งหมดไม่ใช่องค์ประกอบภายในดังนั้นเลือกเส้นขอบ)
  • คัดลอกมัน (ctrl-c, คลิกขวาที่คัดลอกไม่ว่าคุณจะชอบอะไร)
  • เปิดโปรแกรม MS Paint
  • วาง (คุณอาจต้องการลดขนาดภาพก่อนมันจะขยายให้พอดี แต่ไม่หด)
  • บันทึกตามต้องการ

ส่งออกจำนวนมาก

คุณอาจต้องการดูการใช้งานActiveChart.Exportในแมโคร VBA ซึ่งจะช่วยให้คุณระบุเส้นทางของไฟล์แล้วให้ Excel ทำงานได้

ด้านล่างนี้เป็นต้นแบบการทำงานที่ฉันเพิ่งรวบรวมไว้ เรียกใช้แผนภูมินี้และทุกแผนภูมิในสมุดงานที่ใช้งานอยู่จะถูกส่งออกไปยังโฟลเดอร์เดียวกันกับไฟล์นั้นในรูปแบบ PNG โดย_chart##ต่อท้ายชื่อไฟล์ (ซึ่ง##เป็นหมายเลขที่เพิ่มขึ้น)

มันไม่ทำการตรวจสอบความปลอดภัย (ดังนั้นจะเขียนทับไฟล์!) และไม่มีการตรวจสอบข้อผิดพลาดใด ๆ มันจะไม่ทำงานหากคุณยังไม่ได้บันทึกเวิร์กบุ๊กตำแหน่งเป็นแบบอ่านอย่างเดียวหรืออย่างอื่นที่ป้องกันการเขียนไปยังตำแหน่งของไฟล์ ฉันเพิ่งทดสอบสิ่งนี้ใน Excel 2003 (เพราะนั่นคือทั้งหมดที่ฉันต้องทำในขณะนี้)

ในคำอื่น ๆ : การใช้งานที่มีความเสี่ยงของคุณเองนี้มีวัตถุประสงค์เพื่อเป็นตัวอย่างการทำงานขั้นพื้นฐานเท่านั้น

'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

หมายเหตุ: ฉันได้ใส่ความคิดเห็นไว้ใน's ที่ปลายทั้งสองซึ่งไม่จำเป็น แต่ช่วยให้แน่ใจว่าสีเหล่านั้นถูกต้องที่นี่


ฉันต้องการมีวิธีการส่งออกไปยังโฟลเดอร์เดียวกันกับสเปรดชีตปัจจุบันที่กดปุ่ม
fmark

@fmark - จากนั้นเป็นที่มาของแมโครสิ่งที่ต้องการActiveChart.Export ActiveWorkbook.Path & "\chart.png"(แต่อาจจะฉลาดกว่านิดหน่อย!) ในมาโครที่ผูกไว้กับปุ่มแถบเครื่องมือจะทำงานได้
DMA57361

@fmark ฉันเบื่อและมีเวลาสองสามนาทีดังนั้นฉันจึงโยนบางสิ่งที่สมบูรณ์มากขึ้น ตรวจสอบการแก้ไขฉันคิดว่าจะให้จุดเริ่มต้นที่มั่นคงจริงๆ
DMA57361

ไชโย! ฉันจะให้มันหมุนวน
fmark

4

วิธีที่ดีที่สุดคือการบันทึกไฟล์ Excel เป็น HTML

จากนั้นไปที่โฟลเดอร์ที่เก็บภาพและคุณจะเห็นภาพ PNG ที่คุณต้องการ


ฉันต้องยอมรับอย่างเต็มที่ว่านี่เป็นวิธีที่เร็วที่สุด โดยไกล
Jeef

3

ในการแปลงเป็น PNG อย่างปลอดภัยคุณสามารถคัดลอกรูปจาก Excel วางลงบนภาพนิ่งใน Power Point แล้วทำดังต่อไปนี้

บันทึกเป็นรูปแบบอื่นจากนั้นเลือกรูปแบบที่คุณต้องการ จากนั้นจะถามว่าคุณต้องการใช้กับสไลด์ปัจจุบันเท่านั้นหรือสไลด์ทั้งหมด หากคุณเลือกสไลด์ทั้งหมดมันจะสร้างโฟลเดอร์ในไดเรกทอรีที่คุณระบุและบันทึกแต่ละสไลด์เป็นไฟล์ของตัวเองในรูปแบบที่เลือก

มันไม่ได้สวยงามมากนัก แต่มันก็เร็วพอเมื่อคุณต้องการไฟล์และมีประโยชน์อย่างยิ่งถ้าคุณทำการนำเสนอด้วยกราฟเดียวกัน


2

ด้ายเก่า แต่ในกรณีที่คนอื่นมาที่นี่จาก Google: Excel 2011 สำหรับ Mac มีตัวเลือก "บันทึกเป็นรูปภาพ" บนเมนูคลิกขวาเพื่อทำสิ่งนี้


Excel รุ่นใด Excel 2007 ของฉันไม่มีสิ่งนี้แน่นอน การผสานกับ Office อายุ 7 ปีน่าจะเป็น "มาตรการประหยัดต้นทุน"
Ogre Psalm33

Excel 2011 สำหรับ Mac คือสิ่งที่ฉันใช้
Dave Mulligan

0

ใน Excel 2010 คุณสามารถทำได้โดย:

  1. คลิกที่แผนภูมิเพื่อเลือก
  2. คัดลอกโดยใช้ CTRL + C หรือคลิกขวาแล้วเลือกคัดลอก
  3. เปลี่ยนเป็นโปรแกรมแก้ไขกราฟิก (ฉันใช้Paint.net )
  4. แปะ

จากนั้นคุณสามารถบันทึกภาพในรูปแบบใดก็ได้ที่คุณต้องการ


0

หากคุณใช้G วิวรณ์ (ซอฟต์แวร์จับภาพหน้าจอ) คุณสามารถคัดลอกกราฟใน Excel ( Ctrl+ C) จากนั้นคลิกขวาที่ไอคอน Gwid ของภาพเลือกเปิดภาพจากคลิปบอร์ดและบันทึก ไม่จำเป็นต้องใช้โปรแกรมแก้ไขกราฟิก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.