Javascript 自动将文本转换为行和列(谷歌工作表)
我正在尝试将从Squarespace网站提交的订单数据从以下格式转换为包含4列的表: 存储、项目、数量、详细信息;仓库2,项目2,数量2,细节2;(等等……) 逗号分隔列,分号分隔行。 到目前为止,我尝试过的所有方法都成功地将数据拆分为所需的形式,但问题发生在添加新数据时。提交表单时,它会在下一个可用的空行中创建新行。我似乎找不到一种方法来自动化流程而不接收周期性的依赖性错误,因为每个订单可以有任意数量的条目 电子表格示例: 上面的示例根据需要分割数据。我不知道如何使它与作为新行添加的数据一起工作。我还想继续使用它的云功能表 欢迎提供任何建议,包括处理数据的全新方式,无论是使用脚本、与Squarespace forms兼容的其他远程可访问订单处理应用程序,还是在工作表中本机提供Javascript 自动将文本转换为行和列(谷歌工作表),javascript,arrays,google-sheets,split,Javascript,Arrays,Google Sheets,Split,我正在尝试将从Squarespace网站提交的订单数据从以下格式转换为包含4列的表: 存储、项目、数量、详细信息;仓库2,项目2,数量2,细节2;(等等……) 逗号分隔列,分号分隔行。 到目前为止,我尝试过的所有方法都成功地将数据拆分为所需的形式,但问题发生在添加新数据时。提交表单时,它会在下一个可用的空行中创建新行。我似乎找不到一种方法来自动化流程而不接收周期性的依赖性错误,因为每个订单可以有任意数量的条目 电子表格示例: 上面的示例根据需要分割数据。我不知道如何使它与作为新行添加的数据一起
- 您希望实现以下转换
- 在此公式中,单元格“A4”具有输入值
- 您已经使用了
的公式。在这个回答中,我使用了这个。=转置(split(A10,;”)
- 对于
,使用转置(拆分(A10,;”)
和split
将值拆分为ARRAYFORMULA
- 对于
function myFunction(value) {
const values = value.split(";");
return values.splice(0, values.length - 1).map(e => e.split(",").map(f => isNaN(f) ? f : Number(f)));
}
- 在这种情况下,请将脚本复制并粘贴到脚本编辑器中,并将自定义函数
放入单元格中。=myFunction(A4)
- 可以得到与上述公式相同的结果
- 您希望实现以下转换
- 在此公式中,单元格“A4”具有输入值
- 您已经使用了
的公式。在这个回答中,我使用了这个。=转置(split(A10,;”)
- 对于
,使用转置(拆分(A10,;”)
和split
将值拆分为ARRAYFORMULA
- 对于
function myFunction(value) {
const values = value.split(";");
return values.splice(0, values.length - 1).map(e => e.split(",").map(f => isNaN(f) ? f : Number(f)));
}
- 在这种情况下,请将脚本复制并粘贴到脚本编辑器中,并将自定义函数
放入单元格中。=myFunction(A4)
- 可以得到与上述公式相同的结果
将发生的是,当添加数据时
,数据是如何添加的?是剧本吗?2.数据添加到哪里的单元格?3.您希望使用谷歌应用程序脚本实现这一点。我的理解正确吗?不用担心,谢谢你的快速回复。数据来自Squarespace网站上的一个表单。在提交表单时,它被添加为一个全新的行,其中一个单元格包含数据,列用逗号分隔,行用分号分隔。谷歌应用程序脚本似乎是一个可行的解决方案,但我对它的理解非常有限。@kjoy感谢您的回复。关于数据来自Squarespace网站上的一个表单。
,数据是通过脚本还是谷歌表单输入的?它是一个链接到谷歌表单的Squarespace表单。提交表单时将数据传输到工作表。我想这和谷歌的表单差不多。谢谢你的反馈。您的解决方案可以工作,但需要向下拖动函数/公式才能工作。这是一个问题,因为数据是作为新行添加的。因此,当添加数据时,它将位于公式所在的最后一行的下方,因此没有公式应用于新数据。有没有一种方法可以运行一个脚本,在每次运行时重新处理整个工作表,或者其他类似的解决方案?@kjoy感谢您的回复。我为我对你目标的不完整回答道歉。这是因为我的技术差。为了正确理解你的目标,我想确认一下。1.关于将发生的是,当添加数据时
,数据是如何添加的?是剧本吗?2.数据添加到哪里的单元格?3.您希望使用谷歌应用程序脚本实现这一点。我的理解正确吗?不用担心,谢谢你的快速回复。数据来自Squarespace网站上的一个表单。在提交表单时,它被添加为一个全新的行,其中一个单元格包含数据,列用逗号分隔,行用分号分隔。谷歌应用程序脚本似乎是一个可行的解决方案,但我对它的理解非常有限。@kjoy感谢您的回复。关于数据来自Squarespace网站上的一个表单。
,数据是通过脚本还是谷歌表单输入的?它是一个链接到谷歌表单的Squarespace表单。提交表单时将数据传输到工作表。实际上,我想这和谷歌表单是一样的。