我在谷歌电子表格中使用此脚本添加新行:
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
sheet.insertRowAfter(1);
问题是任何引用行的公式都会更新,例如
=A$2
变为
=A$3
插入行后。有没有办法避免这种情况?
(通过更改论坛或脚本。)
我理解行为,电子表格想要保留所有公式指向旧单元格 - 但它与我的总和相混淆(这些应该总是从$ 2总结整个列:999美元(a1是标题)。但是那些得到更新,然后总结3美元:1000美元(等等),所以他们完全错过了新的行。
答案 0 :(得分:3)
您可以使用=SUM(INDIRECT("A2"):INDIRECT("A999"))
对这些值求和。电子表格不会触及这些地址,因为它们是字符串。
答案 1 :(得分:-1)
我最近在Android中完成了这项工作。
service = new SpreadsheetService("Spreadsheet");
service.setProtocolVersion(SpreadsheetService.Versions.V3);
service.setUserCredentials("username", "password");
URL metafeedUrl = new URL("https://spreadsheets.google.com/feeds/spreadsheets/private/full");
feed = service.getFeed(metafeedUrl, SpreadsheetFeed.class);
List<SpreadsheetEntry> spreadsheets = feed.getEntries(); //List of Spreadsheet
worksheetFeed = service.getFeed(spreadsheets.get(0).getWorksheetFeedUrl(), WorksheetFeed.class); //Using the first spreadsheet from list
List<WorksheetEntry> worksheets = worksheetFeed.getEntries();
worksheet = worksheets.get(0);
URL listFeedUrl = worksheet.getListFeedUrl();
// Create a local representation of the new row.
ListEntry row = new ListEntry();
row.getCustomElements().setValueLocal("column_name", "value");
row = service.insert(listFeedUrl, row);
对我来说效果很好。希望它可以帮到你。