我希望根据外部条件更新Google表格中大量不确定数量的单元格。为了最大限度地提高效率,我打算进行单个数组读取和另外一个数组写入来完成更新,其间有一些jiggery来更新数组内容。不幸的是,我还没有想出如何保存数据值以及数据范围内的公式,我将不胜感激。
以下是我的尝试:
如果我使用getDataRange,getValues和SetValues,那么Cell A1正确接受输入的公式,单元格B1,B3和B4接受输入的值,没问题。不幸的是,工作表数据范围内的所有其他公式都被转换为值(公式丢失):
public class Demo {
public static void main(String args[]) throws Exception
{
// exceltowrite at=new exceltowrite("file path");
for(int j=0;j<=29;j++){
at.setCellData("Sheet1",2,j,"failed");
}}}
另一方面,如果我捕获,更改和重写公式,所有包含值而不是公式的单元格都被清除,我只保留计算的单元格内容:
function updateRangeValues() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
var range = sheet.getDataRange();
var rngValues = range.getValues();
/* Arbitary changes */
rngValues [0][0] = "=Sum(b1:d1)";
rngValues [0][1] = 1;
rngValues [0][3] = 2;
rngValues [0][4] = 3;
range.setValues(rngValues);
}
显然,我的问题是如何更改某个范围内某些单元格的单元格值,并更改同一范围内其他一些单元格的单元格公式并更新所有单元格而不会丢失单元格内容或公式?非常感谢期待。