Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 如何通过大量导入加快板材加载时间?_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 如何通过大量导入加快板材加载时间?

Google apps script 如何通过大量导入加快板材加载时间?,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我在工作中被提升为开发和维护一个Google Sheets数据库。我对GoogleSheets脚本知之甚少&通过四处询问,研究它看起来像是天然气,这可能是我需要开始走下去的途径 因此,我们有3个工作手册在谷歌表;2包含大量数据,另一个工作簿为我们的销售dpt提供了一个用户界面。访问数据。我真的希望我能和你们分享这些,因为描述它们是困难的。在UI工作簿中,单独的页面与一个数据库中的工作表配对(我们称之为数据库A) 一个销售员将进入他销售设备的产品的UI表;工作表的顶部允许他从数据库a中选择一行。选

我在工作中被提升为开发和维护一个Google Sheets数据库。我对GoogleSheets脚本知之甚少&通过四处询问,研究它看起来像是天然气,这可能是我需要开始走下去的途径

因此,我们有3个工作手册在谷歌表;2包含大量数据,另一个工作簿为我们的销售dpt提供了一个用户界面。访问数据。我真的希望我能和你们分享这些,因为描述它们是困难的。在UI工作簿中,单独的页面与一个数据库中的工作表配对(我们称之为数据库A)

一个销售员将进入他销售设备的产品的UI表;工作表的顶部允许他从数据库a中选择一行。选择完成后,工作表的其余部分填充我们制造的产品,这些产品与顶部部分的选择一起工作;我们生产的产品存储在另一个数据库(“B”)中。我们必须有两个数据库,因为我们前面已经在两个数据库合并的情况下达到了表中的单元格限制

平均每个UI页面有大约150个导入。通过查询完成查找

我们的问题是,这个用户界面变得非常慢,初始加载时间使它对路上的销售人员来说毫无价值,对办公室的销售人员来说也很烦人。进行初始选择(查询数据库A)时的延迟是可用的,但仍然比我们希望的慢得多。我们还没有完成UI页面的构建

我在网上看到,大多数人建议使用应用程序脚本替换导入,但我对应用程序脚本一无所知,无法理解正在做什么,或者主要是如何获取应用程序脚本并实际将数据放入单元格


因此,我非常感谢您能为我提供的任何帮助。

首先,我要说的是,谷歌应用程序脚本文档在过去的几年中有了很大的改进,现在我发现它非常易于使用。若你们在GoogleSheets中打开一个代码编辑器,进入“帮助”菜单并选择“API参考”,那个么它将把你们链接到你们需要知道的一切。如果您转到并查看SpreadsheetApp对象,您将看到有三个命令用于打开另一个电子表格—不是一张工作表,而是一个电子表格。您可以通过文件、id或URL来完成

如果单击Url命令,它将带您进入如下示例:

// The code below opens a spreadsheet using its id and logs the name for it.
 // Note that the spreadsheet is NOT physically opened on the client side.
 // It is opened on the server only (for modification by the script).
 var ss = SpreadsheetApp.openByUrl(
     'https://docs.google.com/spreadsheets/d/abc1234567/edit');
 Logger.log(ss.getName());
正如它指出的,它实际上并没有在客户端打开文件,而是在服务器上打开。因此,您可能需要首先手动打开它们,以了解它们的外观。一旦知道它们是如何组织的,就可以使用“打开”命令获取电子表格对象,然后从中选择特定的图纸和数据范围。一旦有了范围,就可以像这样加载数组

var myArray = rng.getValues();
这将一次性将整个范围加载到javascript数组中,当然,如果您可以从数组中筛选出不需要的数据,然后将其以所需的范围放入当前工作表中,这将是一件好事。请注意,范围大小必须精确匹配,并且请注意范围从1开始,数组从0开始,这可能会给您带来一些麻烦。还让我补充一些我遇到的警告

如果处理的是一行或一列范围数组,则必须以正确的形式获取数组。我试着在这里写它们,但是StackOverFlow文本转换器一直把它们搞得一团糟,所以我建议你在这个问题上参考我的参考资料

如果你以前用javascript编写过代码,我猜你可以用新文档编写Google Apps脚本,偶尔访问StackOverFlow提一两个问题。我从其他用户那里得到了一些很好的答案。如果您需要javascript引用


我希望这能有所帮助。

首先,我要说的是,谷歌应用程序脚本文档在过去几年中有了很大的改进,现在我发现它非常容易使用。若你们在GoogleSheets中打开一个代码编辑器,进入“帮助”菜单并选择“API参考”,那个么它将把你们链接到你们需要知道的一切。如果您转到并查看SpreadsheetApp对象,您将看到有三个命令用于打开另一个电子表格—不是一张工作表,而是一个电子表格。您可以通过文件、id或URL来完成

如果单击Url命令,它将带您进入如下示例:

// The code below opens a spreadsheet using its id and logs the name for it.
 // Note that the spreadsheet is NOT physically opened on the client side.
 // It is opened on the server only (for modification by the script).
 var ss = SpreadsheetApp.openByUrl(
     'https://docs.google.com/spreadsheets/d/abc1234567/edit');
 Logger.log(ss.getName());
正如它指出的,它实际上并没有在客户端打开文件,而是在服务器上打开。因此,您可能需要首先手动打开它们,以了解它们的外观。一旦知道它们是如何组织的,就可以使用“打开”命令获取电子表格对象,然后从中选择特定的图纸和数据范围。一旦有了范围,就可以像这样加载数组

var myArray = rng.getValues();
这将一次性将整个范围加载到javascript数组中,当然,如果您可以从数组中筛选出不需要的数据,然后将其以所需的范围放入当前工作表中,这将是一件好事。请注意,范围大小必须精确匹配,并且请注意范围从1开始,数组从0开始,这可能会给您带来一些麻烦。还让我补充一些我遇到的警告

如果处理的是一行或一列范围数组,则必须以正确的形式获取数组。我试着在这里写它们,但是StackOverFlow文本转换器一直把它们搞得一团糟,所以我建议你在这个问题上参考我的参考资料

如果你以前用javascript编写过代码,我猜你可以用新文档编写Google Apps脚本,偶尔访问StackOverFlow提一两个问题。我从其他用户那里得到了一些很好的答案。如果您需要javascript引用

I h