gpt4 book ai didi

javascript - 如果名称在列中,则将该列转换为日期格式的 Google 表格

转载 作者:行者123 更新时间:2023-12-04 08:19:32 26 4
gpt4 key购买 nike

语境
我想将下面各列中的数据格式动态更改为正确的日期格式:我使用了这段代码,但现在想让它动态化。日期列中的原始数字格式是来自 google Finance 的日期/时间格式。但我只想要 dd/mm/yyyy 格式。
enter image description here
这是我的原始代码:

function Dateformats() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// Within the values copied spreadsheet, columns that have 'Date' will be the subject of this function
var sheet = spreadsheet.getSheetByName('Values (Live Data copied)')
// var sheet = spreadsheet.getSheetByName("Values (Live Data copied)")
var dataList = sheet.getRangeList(['A:A', 'C:C', 'E:E', 'G:G', 'I:I', 'K:K', 'M:M', 'O:O']);
dataList.setNumberFormat('dd/MM/yyyy');

}
动态结果的新代码
  function Dateformats() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// Within the values copied spreadsheet, columns that have 'Date' will be the subject of this function
var range = spreadsheet.getRangeByName('Values (Live Data copied)!Date')

if(range !== null){
range.setNumberFormat('dd/MM/yyyy');
}
}
两者都有效,尽管后者实际上并未出现在工作表上。日期格式仍然保持不变。
问题
有没有人知道动态重新格式化包含“日期”的列的修复程序?

最佳答案

解释:
您的目标是确定一列是否包含日期对象。如果它包含日期对象,您希望将日期格式从时间戳更改为日期。
以下脚本:

  • 将根据 4th 确定每列的类型行,它将返回 true如果类型是日期或 false除此以外。我用 map根据此条件检查日期元素:typeof em.getMonth === 'function'
  • forEach列类型 date设置整列的格式。

  • 解决方案:
    function Dateformats() {
    const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
    const sheet = spreadsheet.getSheetByName('Values (Live Data copied)')
    const checkTypes = sheet.getRange(4,1,1,sheet.getLastColumn()).
    getValues().
    flat().
    map(em=>typeof em.getMonth === 'function');
    checkTypes.forEach((ct,i)=>{
    if(ct){
    sheet.getRange(4,i+1,sheet.getMaxRows(),1).
    setNumberFormat('dd/MM/yyyy');
    }
    });
    }
    请再次注意,我使用的是 4th row 来确定每一列的类型。因此,该行应包含与同一列中的其余单元格相同的类型。也就是说,如果一列包含多种类型的数据,该解决方案将不起作用。

    关于javascript - 如果名称在列中,则将该列转换为日期格式的 Google 表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65555989/

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