javascript - trim 而不将某些数值转换为日期值Google脚本

标签 javascript google-apps-script trim

我有

var rangeValues = sheet.getDataRange().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();
 }
}

它将一些数值转换为日期值

例如:

8055-1 >> 星期五 Jan 01 8055 00:00:00 GMT-0600 (CST)

我认为问题是toString()而不是trim()

有没有办法通过 trim 来避免这个问题?

谢谢

最佳答案

尝试以下代码:

function trimCells(){
  var sheet = SpreadsheetApp.getActiveSheet();
  var rangeValues = sheet.getDataRange().setNumberFormat("@").getValues();
  // iterate through all cells in the selected range
  for (var cellRow = 0; cellRow < rangeValues.length; cellRow++) {
    for (var cellColumn = 0; cellColumn < rangeValues[0].length; cellColumn++) {  
      Logger.log("Before: " + rangeValues[cellRow][cellColumn])
      rangeValues[cellRow][cellColumn] = rangeValues[cellRow][cellColumn];
      Logger.log("After: " + rangeValues[cellRow][cellColumn])
    }
  }
}

setNumberFormat("@")添加到范围将使您选择的范围变成纯文本。当您之前将值添加到工作表时,它们会自动格式化为日期,因为它与模式匹配。通过此更改,您可以将范围的格式设置为纯文本。

此外,我根据 rangeValues 的长度更改了 maxHeightmaxWidth 我假设这也是您获得它们的方式。此代码会将范围内的值设置为纯文本并检索它们,您甚至不需要 toString()trim() (除非您确实想要后者)。

关于javascript - trim 而不将某些数值转换为日期值Google脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57185638/

相关文章:

javascript - 找出 Node.js 依赖模块崩溃的方法是什么?

google-apps-script - 删除数组 Google Apps 脚本中的重复值

mysql - 如何删除MySQL中原始内容的引号?

sql - 有没有办法修剪 SELECT * FROM 语句中的所有数据?

javascript - HtmlService 表不支持电子表格中的换行符和超链接

android - 从字符串中删除空格

javascript - 我可以使用子字符串过滤javascript中的对象数组吗?

javascript - jQuery scrollTo 函数的问题

javascript - 如何在backbone js中循环调用 View 事件

mysql - 如何使用 Google App 脚本将数据插入外部数据库 : MySQL without using Google SpreadSheet