首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在不影响现有公式的情况下向google电子表格添加新行

如何在不影响现有公式的情况下向google电子表格添加新行
EN

Stack Overflow用户
提问于 2012-10-16 13:11:25
回答 2查看 4.7K关注 0票数 1

我在google电子表格中使用此脚本添加新行:

代码语言:javascript
运行
复制
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
sheet.insertRowAfter(1);

问题是引用行的任何公式都会更新,例如

代码语言:javascript
运行
复制
=A$2

变成了

代码语言:javascript
运行
复制
=A$3

在插入行之后。有没有办法避免这种情况?

(通过更改论坛或脚本。)

我理解这种行为,电子表格想要保持所有公式指向旧的单元格-但它弄乱了我的总和(这些总和应该总是从$2:A$999 (a1是标题)算出整个列)。但是这些行被更新为$3:A$1000(以此类推),所以它们完全错过了新的行。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-16 18:31:17

您可以使用=SUM(INDIRECT("A2"):INDIRECT("A999"))对这些值求和。电子表格不会接触到这些地址,因为它们是字符串。

票数 3
EN

Stack Overflow用户

发布于 2012-10-16 13:23:28

我最近在Android上做到了这一点。

代码语言:javascript
运行
复制
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);

对我来说效果很好。希望能对你有所帮助。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12907893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档