如何使Google App脚本跳过错误并转到下一项
Google App脚本 是一个脚本平台,允许您编写代码来自动化Google应用程序,如Google表格、Google文档和Gmail中的任务。使用Google App脚本,您可以创建自定义函数和脚本,用于扩展这些应用程序的功能。例如,您可以使用Google App脚本在Google表格电子表格中创建一个自定义函数,用于自动生成报告或执行计算。
它基于JavaScript,所以如果您有JavaScript的经验,您应该能够快速学习如何使用Google App脚本。除了JavaScript之外,Google App脚本还提供了许多内置的库和类,您可以使用这些库和类来访问和操作Google应用程序中的数据。
使用Google App脚本的一个关键优势是它允许您在不同的Google应用程序之间集成和自动化任务。例如,您可以使用Google App脚本自动从Google表格电子表格中提取数据,并将其用于在Google文档中创建新文档。这可以节省您大量的时间和精力,因为您可以自动化重复的任务,避免手动在不同的应用程序之间传输数据。
总的来说,Google App脚本是一个强大而灵活的工具,可以帮助您自动化任务并扩展Google应用程序的功能。无论您是初学者还是经验丰富的程序员,Google App脚本都提供了广泛的可能性,可以创建满足您特定需求的定制解决方案。
运行应用脚本代码的设置: 以下是您可以按照的步骤,设置Google表格API项目并启用API并使用您的Google帐户进行身份验证:
步骤1: 转到Google Cloud控制台应用脚本。
步骤2: 选择或创建您想要用于Google Sheets API的项目。
步骤3: 导航到API库。
步骤4: 搜索并选择Google Sheets API。
步骤5: 启用API。
步骤6: 导航至凭据页面。
步骤7: 点击“创建凭据”按钮,选择OAuth客户端ID。
步骤8: 选择“其他”应用程序类型,并为客户端ID命名(例如,“Google Sheets API Client”)。
步骤9: 点击“创建”按钮生成客户端ID和客户端秘钥,这将用于在代码中与API进行身份验证。
步骤10: 在使用API之前,需要在代码中安装必要的库并通过Google帐户进行身份验证。
问题陈述: 如何使我们的代码在解析Google表格时遇到错误行时仍然不停止运行。
假设我们正在解析一个包含1000行学生数据的Google表格,以找到一些有价值的洞察力,但是某一行的数据无效,并在运行时出现错误。我们将看看如何处理这种情况。
示例: 这是一个Google App Script的示例,用于从包含学生数据的Google Sheets电子表格中扫描1000个条目:
您可以通过转到Google Sheets菜单并选择“工具 > 脚本编辑器”来运行此脚本。然后,您可以将代码粘贴到脚本编辑器中并保存。最后,您可以通过单击脚本编辑器中的“播放”按钮来运行scanStudentData()函数。
Javascript
// Async function to retrieve data from
// a Google Sheets spreadsheet and
// log it to the console
async function getSheetData() {
// Specify the spreadsheet ID
// and range of cells to access
const spreadsheetId = '1O6KRpqiwBDXd1nxLdO5TagfppoAfJo3fWqxe7J4VH9Y';
const rangeName = 'Sheet1!A:E';
try {
// Get the values from the spreadsheet
// using the specified ID and range
// The values property of the response
// object contains an array of rows
// from the specified range
const values = Sheets.Spreadsheets.Values
.get(spreadsheetId, rangeName).values;
// If no values are found, log a message and return
if (!values) {
console.log('No data found.');
return;
}
// Iterate over each row in the values array
for (const row in values) {
// Try to log the row, and
// log any errors that occur
try {
console.log(values[row]);
} catch (err) {
console.log(err);
}
}
} catch (err) {
// If there is an error getting
// the values from the spreadsheet,
// log the error message
console.log(err.message);
}
}
// Async function to call
// the getSheetData function
async function main() {
// Call the getSheetData function
await getSheetData();
}
这段代码安装所需的库,设置要访问的Google Sheets的ID,设置要从工作表中检索的单元格范围,设置Google Sheets API客户端,设置客户端的凭据,使用Sheets API从指定范围检索数据,遍历工作表中的行,并对每行的学生数据进行处理(在这个例子中,它只是将学生数据打印到控制台)。
解释:
- 这段代码使用Sheets API从Google Sheets电子表格检索数据。
- 目标电子表格的ID和要访问的单元格范围被指定为常量。
- getSheetData函数被定义为异步,允许它使用await关键字在收到API的响应之前暂停执行。
- getSheetData函数向Sheets API发送请求,从电子表格中检索指定范围的单元格。
- 如果API返回成功的响应,响应对象的values属性将存储在values变量中。
- 如果响应中找不到值,则记录一条消息到控制台,并返回函数。
- 如果找到值,则记录一条消息指示要打印的数据到控制台。
- for循环遍历values数组中的每一行。
- try块尝试将当前行记录到控制台。
- 如果在记录行时发生错误,则catch块将错误记录到控制台。
- for循环中的try和catch块允许函数在处理特定行时即使发生错误也能继续执行。
- 如果在进行API请求时发生错误,则在for循环之外的catch块将错误消息记录到控制台。
- main函数被定义为异步,并使用await关键字调用getSheetData函数。
- main函数作为getSheetData函数的包装器,允许在代码中的其他位置调用它。
getSheetData函数将电子表格中每个学生的姓名和专业打印到控制台。 - 被访问的单元格范围被指定为’Sheet1!A:E’,意味着正在访问名为“Sheet1”的工作表上从A到E的所有单元格。
- for循环遍历values数组中的每一行,并记录第一列和第五列(索引0和4)的值。
- for循环中的try和catch块允许函数在处理特定行时即使发生错误也能继续执行。
- 如果在进行API请求时发生错误,则在for循环之外的catch块将错误消息记录到控制台。
- 这段代码允许使用Sheets API从Google Sheets电子表格检索和处理数据。
输出:
这个输出是通过代码中的console.log语句生成的,它将工作表中每一行的学生数据打印到控制台。假设学生数据存储在工作表的前四列(即A列至D列),其中第一列包含学生的名字,第二列包含学生的姓氏,第三列包含学生的地址,第四列包含学生所在的城市。