我正在使用api将一行附加到google表格中,并且工作正常,但该行中的最后一个对象是公式。无需更改以反映其所在的行,例如= E3-D3,= E4-D4,它保持静态并始终将= E3-D3放入行中。该公式仅适用于该行。
这是针对android的,我正在使用Java库。我知道一定有一种简单的方法可以做到这一点,这很普遍,但是我很想念它。 这是一个代码示例:
这些是我要传递的对象:o6是公式,这是错误的,但是我不确定如何解决。
Object o1 = result.getDate(), o2 = result.getDescription(), o3 =
String.valueOf(result.getDistance()), o4 = result.getStartTime(),o5 =
result.getEndTime(), **o6 ="=E3-D3";**
//for the values that you want to input, create a list of object lists
List<List<Object>> values = new ArrayList<>();
//values.add(data1);
//todo me
values.add(data);
//Create the valuerange object and set its fields
ValueRange valueRange = new ValueRange();
valueRange.setMajorDimension("ROWS");
valueRange.setRange(range);
valueRange.setValues(values);
AppendValuesResponse avResponse = null;
try {
avResponse = this.mService.spreadsheets().values()
.append(mSpreadSheetId, range, valueRange)
.setValueInputOption("USER_ENTERED")
.execute();
到目前为止,我使用的所有公式都占用一个单元格,并且将整个列加起来。
答案 0 :(得分:0)
使用相对公式代替带有R1C1表示法的绝对公式。
Google表格中使用了两种定位符号。第一种称为A1表示法,使用拉丁字母中的字符表示列,使用整数表示单元格的行。第二种称为R1C1表示法,使用整数表示列和行,并且在整数前均以相应的R或C表示行号或列号。地址A1和R1C1等效,地址B5和R5C2也一样。
因此,例如,如果要更新的单元格在H列中,但是您希望即使该列不同,它也总是反映行,请使用相对表示法执行此操作。 INDIRECT公式关键字可以在这里为您提供帮助:
=E3-D3
成为:
=INDIRECT("R[0]C[-3]", FALSE)-INDIRECT("R[0]C[-4]",FALSE)
对于H列。