Fir*_*rog 9 google-sheets google-apps-script
我喜欢使用脚本读取 Google Sheet 中的一系列数据,修改数据然后写回。
var range = sheet.getDataRange();
var values = range.getValues();
// modify the values
range.setValues(values);
Run Code Online (Sandbox Code Playgroud)
到目前为止一切顺利,但我的工作表还包含公式,这些公式现在已替换为固定值,因此修改了我的代码:
var range = sheet.getDataRange();
var values = range.getValues();
var formulas = range.getFormulas();
// modify the values
range.setValues(values);
range.setFormulas(formulas);
Run Code Online (Sandbox Code Playgroud)
但现在我的所有数据都被清除了setFormulas(),我正在努力很好地解决这个问题。我的方法的主要原因是让脚本快速运行,因为工作表中有大量数据。
即我只修改一些数据,但希望保留公式。
Tan*_*ike 10
这个修改怎么样?
range.setValues(values)是运行。这些值被放入单元格中。然后,当range.setFormulas(formulas)运行时,数组中的任何值formulas也不会放入单元格中。这样,具有值的单元格就被清除了。
values和 的数组formulas。它将数组放入单元格中。当以上几点反映到您的脚本中时,它会变成如下所示。我认为针对您的情况有几种解决方案。所以请将此视为其中之一。
请修改如下。
从:range.setValues(values);
range.setFormulas(formulas);
Run Code Online (Sandbox Code Playgroud)
到:
var data = values.map(function(row, i) {
return row.map(function(col, j) {
return formulas[i][j] || col;
});
});
range.setValues(data);
Run Code Online (Sandbox Code Playgroud)
如果我误解了你的问题,请告诉我。我想修改它。
| 归档时间: |
|
| 查看次数: |
1467 次 |
| 最近记录: |