修剪和清理 Google 脚本

2024-02-21

我可以用下面的脚本修剪我的爸爸

但是有没有一种方法可以使用类似于 VBA 中的 Clean 的 Google 脚本来清理 Google 中的数据?

即删除所有非打印字符

我无法查找并替换从其他来源复制并粘贴到 GS 的数据

Thanks

function trimSpacesSHT(shtName) {
 var sheet = SpreadsheetApp.getActive().getSheetByName(shtName);
 var activeRange = sheet.getDataRange();

  // Read Height and Width only once
  var maxHeight = activeRange.getHeight();
  var maxWidth = activeRange.getWidth();

  // Read all values and formulas at once
  var rangeValues = activeRange.getValues();
 // iterate through all cells in the selected range
 for (var cellRow = 0; cellRow < maxHeight; cellRow++) {
    for (var cellColumn = 0; cellColumn < maxWidth; cellColumn++) {
    rangeValues[cellRow][cellColumn] = rangeValues[cellRow][cellColumn].toString().trim().replace(/\s(?=\s)/g,'');
  }
}
 // Write back all values at once
 activeRange.setValues(rangeValues);
}

VBA的CLEAN方法删除了字符0-31, 127, 129, 141, 143, 144, 157。您想使用 Google Apps 脚本来实现此目的吗?如果我的理解是正确的,那么这个示例脚本怎么样?因为我对这个方法很感兴趣,想研究一下,所以我创建了这个。

示例脚本:

function cleanForGAS(str) {
  if (typeof str == "string") {
    var escaped = escape(str.trim());
    for (var i = 0; i <= 31; i++) {
      var s = i.toString(16);
      var re = new RegExp("%" + (s.length == 1 ? "0" + s : s).toUpperCase(), "g");
      escaped = escaped.replace(re, "");
    }
    var remove = ["%7F", "%81", "%8D", "%8F", "%90", "%9D"];
    remove.forEach(function(e) {
      var re = new RegExp(e, "g");
      escaped = escaped.replace(re, "");    
    });
    return unescape(escaped).trim();
  } else {
    return str;
  }
}

Usage :

当您使用它时,请修改您的脚本。

From :

rangeValues[cellRow][cellColumn] = rangeValues[cellRow][cellColumn].toString().trim().replace(/\s(?=\s)/g,'');

To :

rangeValues[cellRow][cellColumn] = cleanForGAS(rangeValues[cellRow][cellColumn].toString());

参考 :

  • WorksheetFunction.Clean 方法 (Excel) https://msdn.microsoft.com/en-us/vba/excel-vba/articles/worksheetfunction-clean-method-excel

如果我误解了你的问题,我很抱歉。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

修剪和清理 Google 脚本 的相关文章

随机推荐

  • Python:使用“copyreg”为已有减速器的类型定义减速器

    请记住 我正在使用 Python 3 工作 因此解决方案需要在 Python 3 中工作 我想使用copyreg教 Python 如何 pickle 函数的模块 当我尝试这样做时 Pickler对象仍然会尝试使用 pickle 函数save
  • NSURLSessionConfiguration 和 NSURLRequest 具有相同的属性吗?

    我在官方文档中看到 NSURLSessionConfiguration 和 NSURLRequest 共享一些相同或相似的属性 比如NSURLRequestCachePolicy networkServiceType timeOurInte
  • 在具有属性的两个表单之间传递数据[重复]

    这个问题在这里已经有答案了 我正在 C 中的 2 个窗口窗体之间传递数据 Form1 是主窗体 其文本框将接收从 form2 textbox 传递给它的文本并将其显示在其文本框 form1 textbox 中 首先 form1 打开 带有一
  • React 测试库 - 在 fireEvent 之后使用“await wait()”

    我正在尝试使用测试库在 fireEvent click 之后检查 DOM 元素 我知道我需要在 fireEvent 之后等待 但不确定为什么简单地使用 wait 不起作用 下面是以两种方式编写的相同测试 第一个失败 第二个通过 我不明白为什
  • .htaccess 将index.php重定向到/

    我想隐藏index php页面并只显示域 htaccess 可以吗 RewriteRule index php L R 301 NC 还尝试过 RewriteEngine On RewriteBase RewriteCond THE REQ
  • 导航抽屉未正确显示

    我正在开发新闻应用程序 并且已经实现了导航抽屉 使用以下link https guides codepath com android fragment navigation drawer但是当我运行代码应用程序时显示空白色 屏幕 在我的 M
  • 附加选项以选择菜单?

    使用 Javascript 如何将选项附加到 HTML 选择菜单 例如
  • 使用任务时如何使用上一个任务的结果继续另一个函数?

    我有 WCF 连接器 它应该为我获取一些少量的数据 通常需要 20 秒才能获取每个项目的数据 这很好 我想使用任务为我获取数据 然后添加具有此任务值的 WinForm 控件 我已经创建了包含这些数据的对象列表 使用第一个任务作为更新列表的任
  • 如何在graphviz中强制Y坐标

    有没有办法在 graphviz 中使用 dot force y 位置 以像素或英寸为单位 The rank same不适合我的情况 The pos x y with Kfdp可能是一种方法 但我想让 GraphViz 确定 X位置 Than
  • 用于过滤项目集合的设计模式?

    想象一下典型的应用程序类型 其中您有一个具有不同属性的项目列表 例如 包含 100 个项目的树视图 每个项目都有一个name a rating a 全球最热门商品排名等等 之间可能也存在多对多的关系items and 项目目录 或之间ite
  • 简单的 Node/Express 应用程序,函数式编程方式(如何处理 JavaScript 中的副作用?)

    有很多关于 JavaScript 函数式编程理论的好文章 有些甚至包含显示命令式 面向对象编程和声明式 函数式编程之间差异的代码示例 但我没有发现任何一个可以通过简单的 JavaScript 代码示例来展示如何处理 Web 应用程序中的副作
  • c中的嵌套结构

    我必须构建一个嵌套结构来存储有关某人的一些基本信息 姓名 年龄 地址 因此 我创建了一个名为 info 的结构 并为了保存地址 我在 info 内创建了另一个名为 address 的嵌套结构 但每当我提示使用 for 循环存储值时 我都会收
  • 升级依赖项后无法解析 ActivityTestRule。无法导入 ActivityTestRule

    我已经编写了工作正常的仪器测试 但现在在将依赖项升级到之后出现错误无法解决 ActivityTestRule 错误 androidTestImplementation com android support test runner 1 0
  • 有关 Swift 中访问“typedef void PaStream;”的正确语法的任何帮助来自 C 文件?

    我编译并导入了一个名为 portaudio 的 dylib C 库 港音网站 http portaudio com 到 Xcode 6 1 Swift 项目中 所有函数 类型都可以访问 除了一个 typedef 无效 PaStream 我无
  • Symfony 1.4 更改管理生成器操作或模板

    如何修改管理员生成的模块 操作和模板 它们存储在缓存中 但我需要修改它们 模板 有可能吗 问候 当然可以 只需将模板文件从缓存复制到相关的module templates后台文件夹中的模板 然后修改 扩展 对于操作 将相同命名的操作添加到m
  • Haskell 中“where”子句在哪里派上用场

    我发现我很少遇到需要使用where条款 然而 我确实发现我过去偶尔会使用它 什么时候是where使用的子句 即在什么情况下使用 什么情况下应该使用它 Haskell Wiki 上也提供了这个问题的两个很好的答案 http haskell o
  • express.js 路由中的全局会话变量?

    当我在express js路线中设置会话时 app get function req res req session foo bar 我无法在其他路线中访问它 未定义 这可能吗 我必须考虑特殊配置吗 thanks 我实际上通过像这样设置会话
  • Firestore云函数递归更新子集合/集合组

    我有这个云功能 import pLimit from p limit const syncNotificationsAvatar async userId string change Change
  • 使用 aws-sdk-go 将对象上传到 AWS S3,而不创建文件

    我正在尝试使用 golang sdk 将对象上传到 AWS S3 而无需在系统中创建文件 尝试仅上传字符串 但我很难做到这一点 谁能给我一个示例 说明如何上传到 AWS S3 而无需创建文件 AWS 如何上传文件的示例 Creates a
  • 修剪和清理 Google 脚本

    我可以用下面的脚本修剪我的爸爸 但是有没有一种方法可以使用类似于 VBA 中的 Clean 的 Google 脚本来清理 Google 中的数据 即删除所有非打印字符 我无法查找并替换从其他来源复制并粘贴到 GS 的数据 Thanks fu