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

如何将Google Sheet导出为CSV并存储至指定网络驱动器?

解决方案:将Google Sheet导出的CSV保存到网络驱动器

Google Apps Script运行在云端,没有权限直接访问本地或网络驱动器的文件系统,因此无法通过GAS直接将文件保存到\\Location1\location2\location3。你需要结合本地脚本(如PowerShell)配合实现,以下是两种可行方案:

方案一:生成带权限的CSV下载链接,用本地脚本下载

修改GAS代码生成临时可下载链接,再通过本地脚本将文件下载到目标网络路径。

修改后的Google Apps Script代码

function getCsvDownloadUrl() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Sheet1");
  var sheetId = sheet.getSheetId().toString();
  var ssId = ss.getId();
  
  // 构造带权限的CSV导出链接,access_token确保无需手动登录即可下载
  var downloadUrl = `https://docs.google.com/spreadsheets/d/${ssId}/export?gid=${sheetId}&format=csv&access_token=${ScriptApp.getOAuthToken()}`;
  
  // 打印链接到日志,方便复制到本地脚本使用
  Logger.log(downloadUrl);
  return downloadUrl;
}

配套PowerShell脚本(本地运行)

将下载的CSV内容直接保存到网络驱动器:

# 替换为GAS生成的下载链接
$downloadUrl = "替换成你的CSV下载链接"
# 目标网络驱动器路径
$savePath = "\\Location1\location2\location3\Sheet1.csv"

# 下载并保存文件
Invoke-WebRequest -Uri $downloadUrl -OutFile $savePath

注意:access_token有效期约1小时,若需定时执行,可通过GAS触发器定时生成新链接,或配置Google OAuth长期令牌。

方案二:部署GAS为Web App,本地脚本请求获取CSV内容

将GAS部署为Web服务,让它直接返回CSV文本内容,再由本地脚本写入网络驱动器。

修改后的Google Apps Script代码(用于Web App)

function doGet() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Sheet1");
  var sheetId = sheet.getSheetId().toString();
  var ssId = ss.getId();
  
  var requestConfig = {
    method: "GET",
    headers: {"Authorization": "Bearer " + ScriptApp.getOAuthToken()}
  };
  
  var exportUrl = `https://docs.google.com/spreadsheets/d/${ssId}/export?gid=${sheetId}&format=csv`;
  var csvContent = UrlFetchApp.fetch(exportUrl, requestConfig).getContentText();
  
  // 返回CSV格式内容,供本地脚本获取
  return ContentService.createTextOutput(csvContent)
    .setMimeType(ContentService.MimeType.CSV);
}

Web App部署步骤

  1. 在GAS编辑器中点击「部署」→「新部署」
  2. 类型选择「Web应用」
  3. 执行权限选「我」,访问权限根据需求选「任何人,甚至匿名」或指定用户
  4. 部署后复制生成的Web App URL

配套PowerShell脚本

# 替换为你的Web App URL
$webAppUrl = "替换成你的Web App地址"
$savePath = "\\Location1\location2\location3\Sheet1.csv"

# 请求Web App获取CSV内容并保存
Invoke-RestMethod -Uri $webAppUrl -OutFile $savePath

补充说明

  • 若需定时自动执行,可给GAS设置时间触发器,同时用Windows任务计划程序定时运行本地脚本
  • 确保运行本地脚本的用户账号对目标网络路径有读写权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 09:20:41