繁体   English   中英

谷歌 Web 应用脚本每日更新

[英]Google Web App Script Daily Update for Cell

您好,在下面的链接中,我有一个用户表单,我可以添加、编辑和删除用户。

电子表格链接https://docs.google.com/spreadsheets/d/1tyz_3WeEkmY4WX8Xvx38nkLow8hcbCjPMLS1-NiPFgo/edit?usp=sharing

开发链接https://script.google.com/macros/s/AKfycbxIT4fJPNyD5U2CKFzWCSho0tR2uuczq1hevzHawtg/dev

所以现在上面的所有字段,如姓名,email,出生日期都将被保存并可以重新编辑。

我在电话号码和国家/地区Daily UpdatesDaily Logs下方添加了 2 列

现在,当我编辑用户并在Daily Updates中更新今天的活动时,例如Something added on - 1-jan-2021现在它应该清除Daily Updates中的字段,并且应该在Daily Logs field中更新。 如果我在Daily Updates中再次更新Something added on 2-jan-2021 ,则应将其清除并在Daily Logs字段中显示为先前和当前

Something added on - 1-jan-2021

Something added on 2-jan-2021

所以我的目标是显示对Daily Updates字段所做的所有更改都应显示在Daily Logs字段中,因为只读,无法编辑。

我相信你的目标如下。

  • 当通过编辑“联系人详细信息数据库”中的数据并将值输入到“每日更新”并单击“提交”按钮加载值时,您希望将值保存到“每日日志”并希望清除“每日更新”。

在这种情况下,如何进行以下修改?

修改后的脚本:

在这种情况下,请在 Google Apps Script 端修改 function updateData如下。

从:

function updateData(values, spreadsheetId, range) {
  var valueRange = Sheets.newValueRange();
  valueRange.values = values;
  var result = Sheets.Spreadsheets.Values.update(valueRange, spreadsheetId, range, { valueInputOption: "RAW" });}

至:

function updateData(values, spreadsheetId, range) {
  var len = values[0].length;
  values[0][len - 1] = values[0][len - 1] ? `${values[0][len - 1]}\n${values[0][len - 2]}` : values[0][len - 2];
  values[0][len - 2] = "";

  var valueRange = Sheets.newValueRange();
  valueRange.values = values;
  var result = Sheets.Spreadsheets.Values.update(valueRange, spreadsheetId, range, { valueInputOption: "RAW" });
}
  • 通过这种修改,当数据更新时,“每日更新”的值作为附加值被保存到“每日日志”中,并且“每日更新”被清除。

笔记:

  • Daily Logs field as read only this can't be edited. ,在这种情况下,请将readonly="readonly"放在“Daily Logs”的 textarea 标签中。

添加:

从下面的回复中,

如果我添加更多字段,例如姓氏、工作字段等,我会继续在电子表格中添加额外的列。

在这种情况下,如何使用列号如下?

至:

function updateData(values, spreadsheetId, range) {
  var colDailyChanges = 8; // Column "H"
  var colDailyLogs = 9; // Column "I"
  values[0][colDailyLogs - 1] = values[0][colDailyLogs - 1] ? `${values[0][colDailyLogs - 1]}\n${values[0][colDailyChanges - 1]}` : values[0][colDailyChanges - 1];
  values[0][colDailyChanges - 1] = "";

  var valueRange = Sheets.newValueRange();
  valueRange.values = values;
  var result = Sheets.Spreadsheets.Values.update(valueRange, spreadsheetId, range, { valueInputOption: "RAW" });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM