You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何一键或自动批量下载Google Sheets中的所有图表?

绝对有办法解决这个耗时间的重复劳动!我给你整理了几个实用的自动化方案,从简单到进阶都有,你可以根据团队的情况选:

方案1:用Google Apps Script实现全自动定时导出(最推荐)

这是Google原生的解决方案,不用额外安装工具,设置起来也简单,完美适配你的每小时导出需求:

  1. 打开你的Google Sheets表格,点击顶部菜单栏的「扩展程序」→「Apps 脚本」
  2. 删除编辑器里的默认代码,粘贴下面的脚本:
function exportAllCharts() {
  const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  // 创建以当日日期命名的Drive文件夹,方便区分不同时段的导出
  const folder = DriveApp.createFolder("Sheet Charts Export " + new Date().toISOString().slice(0,10));
  const allCharts = spreadsheet.getCharts();

  allCharts.forEach((chart, index) => {
    // 导出为PNG格式,要PDF的话把'image/png'改成'application/pdf'
    const chartBlob = chart.getAs('image/png');
    // 生成带标题的文件名,没标题就用序号代替
    const fileName = `Chart ${index+1} - ${chart.getOptions().get('title') || 'Untitled'}.png`;
    folder.createFile(chartBlob.setName(fileName));
  });

  // 导出完成后弹出提示
  SpreadsheetApp.getUi().alert(`搞定!${allCharts.length}张图表已经导出到Drive文件夹:${folder.getName()}`);
}
  1. 点击编辑器顶部的「保存」按钮,给脚本起个名字(比如ChartExporter)
  2. 设置定时自动触发:
    • 点击左侧菜单栏的「触发器」图标(时钟样式)
    • 点击「添加触发器」,按以下设置:
      • 选择要运行的函数:exportAllCharts
      • 选择事件源:「时间驱动」
      • 选择类型:「小时计时器」
      • 选择间隔:「每小时」
    • 保存后,脚本就会每小时自动导出所有图表到Google Drive的对应文件夹里,员工直接去文件夹下载就行,完全不用手动操作!
方案2:Python脚本集成(适合有技术基础的团队)

如果你们团队有懂Python的同学,可以用Google Sheets API实现更灵活的自动化,比如集成到现有工作流里:

import gspread
from google.oauth2.service_account import Credentials
from googleapiclient.discovery import build
from googleapiclient.http import MediaIoBaseUpload
import requests
import io
from datetime import datetime

# 第一步:先在Google Cloud控制台创建服务账号并下载密钥文件(步骤略)
SCOPES = ['https://www.googleapis.com/auth/spreadsheets', 'https://www.googleapis.com/auth/drive']
creds = Credentials.from_service_account_file('你的服务账号密钥.json', scopes=SCOPES)

# 连接Google Sheets和Drive
spreadsheet = gspread.authorize(creds).open('你的表格名称')
drive_service = build('drive', 'v3', credentials=creds)

# 创建当日导出文件夹
folder_name = f"Sheet Charts Export {datetime.now().strftime('%Y-%m-%d_%H-%M')}"
folder_metadata = {'name': folder_name, 'mimeType': 'application/vnd.google-apps.folder'}
folder = drive_service.files().create(body=folder_metadata, fields='id').execute()
folder_id = folder.get('id')

# 遍历所有工作表的图表并导出
for sheet in spreadsheet.worksheets():
    charts = sheet.get_charts()
    for idx, chart in enumerate(charts):
        # 构造图表导出链接
        export_url = f"https://docs.google.com/spreadsheets/d/{spreadsheet.id}/export?format=png&gid={sheet.id}&chartid={chart['chartId']}"
        # 下载图表
        response = requests.get(export_url, headers={'Authorization': f'Bearer {creds.token}'})
        # 上传到Drive文件夹
        file_metadata = {'name': f"{sheet.title}_Chart_{idx+1}.png", 'parents': [folder_id]}
        media = MediaIoBaseUpload(io.BytesIO(response.content), mimetype='image/png')
        drive_service.files().create(body=file_metadata, media_body=media, fields='id').execute()

print(f"所有图表已导出到Drive文件夹:{folder_name}")

这个方案可以和其他工具(比如任务调度工具)结合,实现更复杂的自动化逻辑。

方案3:第三方插件一键导出(零代码快速上手)

如果不想碰代码,可以去Google Workspace Marketplace搜索「批量图表导出」类的插件(比如Chart Exporter、Export All Charts),大部分插件支持:

  • 一键导出所有图表到Google Drive或本地
  • 自定义导出格式(PNG/PDF/JPG)
  • 部分插件支持设置定时自动导出,和Apps Script的效果类似

内容的提问来源于stack exchange,提问作者egflame

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 15:22:44