我在google电子表格中使用此脚本添加新行:
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
sheet.insertRowAfter(1);问题是引用行的任何公式都会更新,例如
=A$2变成了
=A$3在插入行之后。有没有办法避免这种情况?
(通过更改论坛或脚本。)
我理解这种行为,电子表格想要保持所有公式指向旧的单元格-但它弄乱了我的总和(这些总和应该总是从$2:A$999 (a1是标题)算出整个列)。但是这些行被更新为$3:A$1000(以此类推),所以它们完全错过了新的行。
发布于 2012-10-16 18:31:17
您可以使用=SUM(INDIRECT("A2"):INDIRECT("A999"))对这些值求和。电子表格不会接触到这些地址,因为它们是字符串。
发布于 2012-10-16 13:23:28
我最近在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);对我来说效果很好。希望能对你有所帮助。
https://stackoverflow.com/questions/12907893
复制相似问题