小编Mon*_*yDo的帖子

如果var是数字,对于脚本

我需要运行一个包含逻辑的脚本:If isNumber,Then DoSomething.

我运行其他如果然后测试,如果为空,如果单元格包含"x".它应该很简单,但我找不到解决方案.我试过getNumberFormat,innum,isnumber等.

function ifIsNumber() {

var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getActiveSheet();

var substring1 = s.getRange("A1").getNumberFormat();

s.getRange("B1").setValue(substring1);

}
Run Code Online (Sandbox Code Playgroud)

对于包含数字和文本的两个单元格,此代码检查单元格A1并在单元格B1中返回字符串"0.###############".如何识别哪些单元格是数字?

google-apps google-sheets google-apps-script

12
推荐指数
2
解决办法
2万
查看次数

HTML/JS 表单无法正确导入/导出 txt

问题

概括

为离线使用而设计的 HTML 表单无法正确导出/导入数据。有没有对菜鸟友好的解决方案?

细节

此表单旨在让用户可以打开 HTML 表单、填写表单并将数据导出为 pip 分隔的 .txt 文件。

它可以导入/导出各种字段,如姓名、性别和城市。但是,它不能导入/导出 Snack Preferences 和 Dinner Preferences。在我们的数据集中,这意味着成员“Ravenous Kitty”将获得汤而不是鸟,以及奶酪(不需要的)。

初始形式为空:

表格首字母

您可以填写表格并单击“将数据保存到文件”按钮:

填写的表格

但是当您使用“选择文件”按钮导入相同的数据时,条目会混淆:

已加载表单信息

代码

Encodedna代码已重新调整用途以解决该问题。它由三个部分组成:

  1. HTML 表单
  2. 数据导出部分
  3. 数据导入部分
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Offline Form 0.1</title>
</head>

<body>

    <div>
        <input type="file" name="inputfile" id="inputfile">
    </div>

<fieldset>
<legend>Elite Club Member</legend>

        <!-- Static -->
        <b>Name:</b>
        <div id="Name"></div>
        <b>DoB:</b>
        <input type="date" id="DoB"/><br>

        <!-- dropdown, prefilled -->
        <b>Gender:</b>
        <select id="Gender" name="Gender">
            <option value="Male">Male</option>
            <option value="Female">Female</option>
            <option value="Other">Other</option>
        </select>
        <br> …
Run Code Online (Sandbox Code Playgroud)

html javascript forms

8
推荐指数
1
解决办法
157
查看次数

由于getValue和单元格插入而可能导致处理时间长

我刚刚编写了第一个从VBA移植的Google Apps脚本,该脚本可格式化一列客户订单信息(感谢您的全力指导)。

描述:

该代码使用-前缀标识状态代码,然后将以下名字和姓氏(如果存在)组合在一起。然后,它会写上“姓氏已完成”的位置。最后,如果订单之间没有间隙,它将插入一个必要的空白单元格(请参见下图)。

问题:

问题是处理时间。它不能处理更长的数据列。我被警告

脚本大量使用方法Range.getValue。

现有优化:

根据对这个问题的回答,我尝试将尽可能多的变量保留在循环之外,并且还改进了if语句。@MuhammadGelbana建议只调用一次Range.getValue方法并移动其值...但是我不知道这将如何/将如何工作。

码:

function format() {

var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getActiveSheet();
var lastRow = s.getRange("A:A").getLastRow();
var row, range1, cellValue, dash, offset1, offset2, offset3;

  //loop through all cells in column A
  for (row = 0; row < lastRow; row++) {
    range1 = s.getRange(row + 1, 1);

    //if cell substring is number, skip it
    //because substring cannot process numbers
    cellValue = range1.getValue();
    if (typeof cellValue === 'number') {continue;}; …
Run Code Online (Sandbox Code Playgroud)

javascript optimization multidimensional-array google-sheets google-apps-script

1
推荐指数
2
解决办法
2851
查看次数