google-apps-script - 设置交替列数字格式
问题描述
我有一张表格,我们在 A 列第 3 行有一个产品名称。在单元格 B1 和 C1 中,我们有日期,然后是 B2 库存和 C2 价格
26/3/21 26/3/21
Thingymabob 3 5
我想沿着 C、E、G 等列前进,直到最后一列将它们格式化为 $#.##
我找不到格式化列(索引)的方法,所以我在这里找到了一段旧代码,将索引转换为字母,然后我试图用那个字母说
"var column = sheet.getRange("C2:C")" "column.setNumberFormat("[$€]#,##0.00");"
虽然没有喜悦。这是函数,请帮忙!
function formatPriceColumns() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheetByName("PriceHistory");
var temp = ""
var letter = "";
var lastCol = sheet.getLastColumn();
var lastRow = sheet.getLastRow();
for(i = 3; i <= lastCol; i = i + 2) {
temp = (i - 1) % 26;
letter = String.fromCharCode(temp + 65) + letter;
i = (i - temp - 1) / 26;
var needString = "\"" + letter + "3" + ":" + letter + lastRow + "\""
var column = sheet.getRange(needString)
column.setNumberFormat("[$€]#,##0.00");
}
}
解决方案
好吧,有很多问题!
其中使用 i 两次是最少的。还有变量的范围,最重要的是,不传递字符串。
更正后的代码如下所示:
function formatColumns() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheetByName("PriceHistory");
var lastCol = sheet.getLastColumn();
var lastRow = sheet.getLastRow();
for(i = 5; i <= lastCol; i = i + 2) {
var temp = ""
var letter = ""
var column = 0
column = i
temp = (column - 1) % 26;
letter = String.fromCharCode(temp + 65) + letter;
var column = sheet.getRange(letter + "3:" + letter + lastRow)
column.setNumberFormat("[$€]#,##0.00");
}
}
推荐阅读
- html - 带有两个表格的表格固定头与 tbody 上的滚动条有对齐问题
- reactjs - React 中的延迟加载
- spring-rest - 从 JUnit 调用 PATCH 方法的 Java 代码
- angular2-pipe - 有什么方法可以在没有符号的情况下使用 Angular 百分比管道?
- android - ConstraintLayout : 如何使用 ConstraintLayout 创建此布局
- angular - 对象字面量只能指定已知属性,并且在“IndividualSeriesOptions”类型中不存在“中心”
- django - How to set Session on LoginView in-built Django
- ruby-on-rails - 在 AREL 中横向连接
- reactjs - 如何从地图(类型)中获取信息
- here-api - 如何使用 curl 提交新地址