gpt4 book ai didi

javascript - 在 Google 表格中使用 Google Apps 脚本时如何防止日期变成字符串?

转载 作者:行者123 更新时间:2023-11-30 10:59:55 26 4
gpt4 key购买 nike

我使用了发布的脚本 here在大型 Google 电子表格中,用数字替换字符串。

效果很好,但问题是,日期变成了字符串

我认为问题出在 toString() 方法上,但我找不到任何替代方法来使代码正常工作。

=> 有没有人有办法避免这个问题?

脚本

function runReplaceInSheet(){
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet3");
// get the current data range values as an array
// Fewer calls to access the sheet -> lower overhead
var values = sheet.getDataRange().getValues();

// Replace
replaceInSheet(values, 'datateam', '42007860');


// Write all updated values to the sheet, at once
sheet.getDataRange().setValues(values);
}

function replaceInSheet(values, to_replace, replace_with) {
//loop over the rows in the array
for(var row in values){
//use Array.map to execute a replace call on each of the cells in the row.
var replaced_values = values[row].map(function(original_value) {
return original_value.toString().replace(to_replace,replace_with);
});

//replace the original row values with the replaced values
values[row] = replaced_values;
}
}

之前

enter image description here

之后

enter image description here

最佳答案

  • 您想替换电子表格的值。
    • 在您的脚本中,您想将 datateam 替换为 42007860
  • 您想使用 Google Apps 脚本实现这一目标。

如果我的理解是正确的,这个答案怎么样?请将此视为几个答案之一。

模式一:

在此模式中,使用 getDisplayValues() 而不是 getValues()

修改后的脚本

请按如下方式修改您的脚本。本次修改修改了runReplaceInSheet()函数。

function runReplaceInSheet(){
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet3");
// get the current data range values as an array
// Fewer calls to access the sheet -> lower overhead
var values = sheet.getDataRange().getDisplayValues(); // Modified

// Replace
replaceInSheet(values, 'datateam', '42007860');


// Write all updated values to the sheet, at once
sheet.getDataRange().setValues(values);
}

模式二:

在此模式中,使用 TextFinder 代替 replaceInSheet()setValues()

修改后的脚本

请按如下方式修改您的脚本。本次修改修改了runReplaceInSheet()函数。而且,在此修改中,未使用 replaceInSheet

function runReplaceInSheet(){
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet3");
sheet.createTextFinder('datateam').replaceAllWith('42007860'); // Added
}

引用资料:

如果我误解了您的问题并且这不是您想要的方向,我深表歉意。

关于javascript - 在 Google 表格中使用 Google Apps 脚本时如何防止日期变成字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58240495/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com