我有一个 Google 电子表格,放置在外部 Google 云端硬盘中并通过链接分享给我。我可以在仅查看模式下使用它。该电子表格包含许多列表(就像通常的 Excel 一样)。
我想将此电子表格中的每个列表下载为单独的 csv 文件,我可以通过在每个列表中单击“文件”->“下载”->“逗号分隔值”来手动使用它。
现在我想自动化这个过程,但仍然不知道如何去做。
我考虑过 Selenium,但 Google 不支持它。Google API 也没有帮助,因为它不是我的云端硬盘。
你对此有什么想法吗?
谢谢你!
您可以使用Google App 脚本将工作表保存到 G-Drive 中的 CSV 中。您可以循环浏览特定电子表格中的所有工作表并将它们全部保存为 CSV。
在您的 Google 帐户中创建一个新的电子表格(无论是新的还是现有的)。
在功能区中,转到“扩展”并单击“应用程序脚本”
将打开一个新的应用程序脚本窗口,其中包含一个空白code.gs文件和一个空白myFunction函数
将函数替换为以下代码
ssID将代码更新folder_id为您各自的电子表格和文件夹 ID
在应用程序脚本编辑器的左侧边栏上,单击+旁边的按钮Services。然后选择Drive API并单击Add
在应用程序脚本编辑器顶部的功能区中 -sheetToCsv在旁边的下拉列表中选择功能Debug,然后单击Run
所有工作表都将以 CSV 文件形式保存在 G 驱动器的文件夹中。

下面是代码(使用仅供查看的工作表进行尝试和测试):
function sheetToCsv()
{
var ssID = "SpreadsheetID" // SpreadsheetApp.getActiveSpreadsheet().getId();
var requestData = {"method": "GET", "headers":{"Authorization":"Bearer "+ScriptApp.getOAuthToken()}};
var sprdSheet = SpreadsheetApp.openById(ssID)
var allSheets = sprdSheet.getSheets();
for(var s in allSheets){
var sheet = allSheets[s];
var sheet_Name = sheet.getName()
var sheetNameId = sheet.getSheetId().toString();
params= ssID+"/export?gid="+sheetNameId +"&format=csv"
var url = "https://docs.google.com/spreadsheets/d/"+ params
var result = UrlFetchApp.fetch(url, requestData);
var folder_id ='ID'; // replace this with your respective folder ID
var resource = {
title: sheet_Name+".csv",
mimeType: "application/vnd.csv",
parents: [{ id: folder_id }]
}
var fileJson = Drive.Files.insert(resource,result)
}
}
Run Code Online (Sandbox Code Playgroud)
ssID和更新folder_id为各自的电子表格和文件夹 IDonOpen功能在功能区菜单中创建自定义按钮,以从功能区中运行任何应用程序脚本功能 -就像另一个答案中提到的 mike 一样。此外,您可以使用提示对话框允许代码下载任何工作表。| 归档时间: |
|
| 查看次数: |
1043 次 |
| 最近记录: |