对于任何导航到这个问题的人来说,尝试一次性将 Google 电子表格中的所有选项卡下载为 CSV 文件,即使在 2021 年,似乎也没有 GUI 按钮可以执行此操作。至少我什么也看不到。@Amit Agarwal 的答案做得很好,可以获取所有工作表,但如果您的文件在单元格中包含逗号分隔的数据,那么数据可能会被破坏。
我采用了 Amit 的方法/sf/answers/2009837301/并将其与 Michael Derazon 和 Aaron Davis 的方法结合起来https://gist.github.com/mrkrndvs/a2c8ff518b16e9188338cb809e06ccf1将所选 Google 电子表格的所有选项卡转储到Google 云端硬盘中的文件夹。然后,您只需单击一下即可下载该文件夹。
以下是 Google 脚本,不完全是 Javascript,您必须将其复制粘贴到https://script.google.com/中,使用您的 Google id 登录,然后创建一个项目,然后创建一个脚本应用程序,然后保存并执行此操作。
// /sf/answers/2009837301/
function export_sheets_as_csv_to_folder() {
// Sheet id is in URL https://docs.google.com/spreadsheets/d/YOUR_SHEET_ID/edit#gid=IGNORE
var ss = SpreadsheetApp.openById('YOUR_SHEET_ID');
var sheets = ss.getSheets();
if (sheets === undefined || sheets.length === 0) {
return;
}
var passThroughFolder = DriveApp.createFolder('YOUR_PREFERRED_FOLDER_NAME_IN_DRIVE');
for (var s in sheets) {
var csv = convertRangeToCsvFile_(sheets[s])
passThroughFolder.createFile(sheets[s].getName() + ".csv", csv);
}
}
// https://gist.github.com/mrkrndvs/a2c8ff518b16e9188338cb809e06ccf1
function convertRangeToCsvFile_(sheet) {
// get available data range in the spreadsheet
var activeRange = sheet.getDataRange();
try {
var data = activeRange.getValues();
var csvFile = undefined;
// loop through the data in the range and build a string with the csv data
if (data.length > 1) {
var csv = "";
for (var row = 0; row < data.length; row++) {
for (var col = 0; col < data[row].length; col++) {
if (data[row][col].toString().indexOf(",") != -1) {
data[row][col] = "\"" + data[row][col] + "\"";
}
}
// join each row's columns
// add a carriage return to end of each row, except for the last one
if (row < data.length-1) {
csv += data[row].join(",") + "\r\n";
}
else {
csv += data[row];
}
}
csvFile = csv;
}
return csvFile;
}
catch(err) {
Logger.log(err);
Browser.msgBox(err);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
24690 次 |
最近记录: |