javascript - 自动将文本转换为行和列(Google 表格)
问题描述
我正在尝试将从 Squarespace 网站提交的订单表格数据从以下格式转换为具有 4 列的表格:
Store,Item,Quantity,Details;Store2,Item2,Quantity2,Details2; (ETC...)
逗号分隔列,分号分隔行。到目前为止我尝试过的所有方法都成功地将数据拆分为所需的形式,但是在添加新数据时会出现问题。提交表单时,它会在下一个可用的空行中创建一个新行。我似乎无法找到一种方法来自动化流程而不会收到周期性依赖错误,因为每个订单可以有任意数量的项目条目。
上面的示例根据需要拆分数据。我不知道如何使它与作为新行添加的数据一起工作。我还想继续使用工作表来实现其云功能。
任何建议都值得赞赏,包括处理数据的全新方法,无论是使用脚本、与 Squarespace 表单兼容的不同远程访问订单处理应用程序,还是在 Sheets 中本地。
解决方案
示例公式:
=ARRAYFORMULA(SPLIT(TRANSPOSE(split(A4,";")),","))
- 在此公式中,单元格“A4”具有输入值。
- 您已经使用了 的公式
=TRANSPOSE(split(A10,";"))
。在这个答案中,我使用了这个。- 对于,使用和
TRANSPOSE(split(A10,";"))
拆分值。,
SPLIT
ARRAYFORMULA
- 对于,使用和
结果:
示例脚本:
当您想使用 Google Apps Script 时,您还可以使用以下脚本。
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)
放到一个单元格中。- 可以得到与上式相同的结果。
参考:
推荐阅读
- lstm - FastAi LSTM 前向方法问题
- magento2 - magento 2自定义主题预览图像未显示在管理员中
- ubuntu-18.04 - 如何在 ubuntu 18.04 中长时间运行 Maria DB
- javascript - 状态栏添加额外的填充 React-native
- python - sklearn 中 MLPClassifier 的 predict_proba() 函数输出总可能性不等于一
- flutter - 如何在 Flutter 中找出 Widget 出现/消失的时间?
- python - 这可能是因为 cuDNN 初始化失败,因此请尝试查看上面是否打印了警告日志消息。[操作:Conv2D]
- python - 使用 Pil 将图像存储在列表中并在浏览器中检索这些图像
- flutter - flutter pub publish:找不到名为“dry-run”的选项
- javascript - 角度状态管理