Làm cách nào tôi có thể lưu biểu đồ vào tệp PNG hoặc GIF trong Microsoft Excel?


27

Làm cách nào tôi có thể lưu biểu đồ vào tệp PNG hoặc GIF trong Microsoft Excel?

Tôi biết tôi có thể lưu dưới dạng tệp HTML và sử dụng hình ảnh được tạo ở đó, nhưng tôi nghi ngờ có một cách không tạo ra sự lộn xộn khác của các tệp mà tôi không muốn. Tôi rất vui khi cài đặt một bổ trợ nếu đó là tùy chọn được đề xuất.

Tôi đang sử dụng Excel 2003 và 2007 nếu có vấn đề.


Đây là một lời giải thích và một liên kết đến một Bổ trợ Excel (miễn phí) sẽ làm điều đó cho bạn: Quy trình biểu đồ xuất khẩu nâng cao
Jon Peltier

Câu trả lời:


34

Excel thiếu bất kỳ hỗ trợ nào mà người dùng có thể truy cập được đối với chức năng này, nhưng bạn có thể dễ dàng làm việc xung quanh vấn đề này hoặc tìm hiểu về VBA, nơi chức năng này được cung cấp:


Xuất khẩu "One-shot"

  • Chọn biểu đồ (toàn bộ biểu đồ, không phải thành phần bên trong; vì vậy hãy chọn đường viền).
  • Sao chép nó (ctrl-c, nhấp chuột phải sao chép, bất cứ điều gì bạn thích).
  • Mở MS Sơn.
  • Dán (bạn có thể muốn giảm thiểu kích thước hình ảnh trước, nó sẽ được phóng to để vừa, nhưng không bị thu nhỏ).
  • Lưu lại theo ý muốn.

Xuất khẩu số lượng lớn

Bạn có thể muốn xem xét việc sử dụng ActiveChart.Exporttrong macro VBA, điều này cho phép bạn chỉ định đường dẫn tệp và sau đó cho phép Excel thực hiện công việc.

Dưới đây là một nguyên mẫu hoạt động mà tôi vừa đặt lại với nhau. Chạy biểu đồ này và mọi biểu đồ trong sổ làm việc đang hoạt động sẽ được xuất sang cùng thư mục với tệp đó, ở định dạng PNG, được _chart##gắn vào tên tệp (trong đó## số tăng dần).

không thực hiện bất kỳ kiểm tra an toàn nào (vì vậy sẽ ghi đè lên các tệp!) Và không chứa bất kỳ kiểm tra lỗi nào. Nó sẽ không hoạt động nếu bạn chưa lưu sổ làm việc, vị trí ở chế độ chỉ đọc hoặc bất kỳ thứ gì khác ngăn ghi vào vị trí của tệp. Tôi mới chỉ thử nghiệm điều này trong Excel 2003 (vì đó là tất cả những gì tôi phải trao vào lúc này).

Nói cách khác: Sử dụng có nguy cơ của riêng bạn , đây chỉ nhằm mục đích làm ví dụ cơ bản .

'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

Lưu ý: Tôi đã đóng gói các nhận xét 'ở cả hai đầu, điều này không cần thiết, nhưng giúp đảm bảo chúng được tô màu chính xác ở đây.


Tôi muốn có một cách để xuất nó vào cùng thư mục với bảng tính hiện tại chỉ bằng cách nhấn nút
đánh dấu

@fmark - sau đó là nơi macro xuất hiện, một cái gì đó như ActiveChart.Export ActiveWorkbook.Path & "\chart.png"(nhưng có thể thông minh hơn một chút!) trong một macro liên kết với nút thanh công cụ sẽ thực hiện công việc.
DMA57361

@fmark, tôi đã chán và có một vài phút vì vậy tôi đã cùng nhau hoàn thành một cái gì đó hoàn thiện hơn nhiều. Kiểm tra chỉnh sửa, tôi nghĩ rằng sẽ cung cấp cho bạn một điểm khởi đầu thực sự vững chắc.
DMA57361

Chúc mừng! Tôi sẽ cho nó một vòng xoáy.
đánh dấu

4

Cách tốt nhất là lưu tệp Excel dưới dạng HTML.

Sau đó vào thư mục lưu trữ hình ảnh và bạn sẽ thấy hình ảnh PNG bạn muốn.


Tôi phải hoàn toàn đồng ý đây thực sự là phương pháp nhanh nhất. Cho đến nay.
Jeef

3

Để chuyển đổi một cách an toàn sang PNG, bạn có thể sao chép hình từ Excel, dán nó vào một slide trong Power Point, sau đó thực hiện như sau.

Lưu dưới dạngCác định dạng khác , sau đó chọn định dạng bạn muốn. Sau đó, nó sẽ hỏi bạn chỉ muốn áp dụng điều này cho slide hiện tại hay tất cả các slide. Nếu bạn chọn tất cả các trang chiếu, nó sẽ tạo một thư mục trong thư mục bạn chỉ định và lưu từng trang vào tệp riêng của mình ở định dạng đã chọn.

Nó không thanh lịch lắm, nhưng nó có thể đủ nhanh khi bạn chỉ cần các tệp và đặc biệt hữu ích nếu bạn đã thuyết trình với cùng một biểu đồ.


2

Chủ đề cũ, nhưng chỉ trong trường hợp bất kỳ ai khác hạ cánh ở đây từ Google: Excel 2011 cho Mac có tùy chọn "Lưu dưới dạng hình ảnh" trên menu chuột phải để thực hiện chính xác điều này.


Phiên bản nào của Excel? Excel 2007 của tôi chắc chắn không có cái này. Gắn bó với một Văn phòng 7 tuổi có lẽ là một "biện pháp tiết kiệm chi phí".
Ogre Psalm33

Excel 2011 cho Mac là những gì tôi đang sử dụng.
Dave Mulligan

0

Trong Excel 2010, bạn có thể làm điều này bằng cách:

  1. Nhấp vào biểu đồ để chọn nó.
  2. Sao chép bằng CTRL + C hoặc bằng cách nhấp chuột phải và chọn Sao chép.
  3. Chuyển sang chương trình chỉnh sửa đồ họa (Tôi đã sử dụng Paint.net ).
  4. Dán.

Sau đó, bạn có thể lưu hình ảnh ở bất kỳ định dạng nào bạn muốn.


0

Nếu bạn đang sử dụng G Muff (phần mềm chụp màn hình), thì bạn có thể sao chép biểu đồ trong Excel ( Ctrl+ C), sau đó nhấp chuột phải vào biểu tượng của G Muff, chọn Mở hình ảnh từ bảng ghi tạm và lưu nó. Không cần sử dụng trình soạn thảo đồ họa.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.