回答編集履歴
6
test
CHANGED
@@ -15,7 +15,7 @@
|
|
15
15
|
メニュー→表示形式→数字→カスタム数値数式
|
16
16
|
「@」と入力して「適用」ボタンをクリック
|
17
17
|
<GASでのやり方>
|
18
|
-
GASコード内
|
18
|
+
GASコード内で、setValueを行っている部分の前に
|
19
19
|
sheet.getRange(行,列).setNumberFormat("@");
|
20
20
|
の行を追加する。
|
21
21
|
|
5
test
CHANGED
@@ -1,20 +1,33 @@
|
|
1
1
|
Slackが返すタイムスタンプを数値として表示させるときに、GASで扱える浮動小数点数の範囲で扱おうとして
|
2
2
|
小数第6位が丸められている可能性があります。
|
3
3
|
|
4
|
+
さらに、setValues() の引数に数値型の変数を指定して実行した場合、
|
5
|
+
入力先のセルに設定されている表示形式が強制的に数値形式に上書きされてしまうようです。
|
4
|
-
|
6
|
+
したがって、setValues() の引数は、文字列型に変換した変数を指定する必要があるようです。
|
5
7
|
|
8
|
+
(質問文の追記では、「event.param,tsをtypeof で調べたところ 文字列型だった」 とのことなので、なぜ丸められてしまうのかは不明ですが)
|
6
9
|
|
10
|
+
---
|
11
|
+
|
12
|
+
① まず、対象セルの表示形式を数値ではなく、**書式なしテキスト**に変える
|
13
|
+
<手動でのやり方>
|
7
14
|
小数第6位まで表示させたいセルをクリック
|
8
15
|
メニュー→表示形式→数字→カスタム数値数式
|
9
16
|
「@」と入力して「適用」ボタンをクリック
|
17
|
+
<GASでのやり方>
|
18
|
+
GASコード内に、入力する直前の行に
|
19
|
+
sheet.getRange(行,列).setNumberFormat("@");
|
20
|
+
の行を追加する。
|
10
21
|
|
11
|
-
GASコード内に、
|
12
|
-
sheet.getRange(行,列).setNumberFormat("@");
|
13
|
-
の行を追加し、
|
14
|
-
そのあとの入力部分
|
22
|
+
②次に、そのあとの入力部分について
|
15
23
|
sheet.getRange(66,30).setValue(params.event.ts.toString());
|
24
|
+
のように、末尾にtoString() を付ける。
|
16
25
|
|
17
|
-
|
26
|
+
(または、これでも治らなければ、末尾に空白文字を付けてみる
|
27
|
+
sheet.getRange(66,30).setValue(params.event.ts.toString() +" ”);
|
28
|
+
)
|
29
|
+
|
30
|
+
例)
|
18
31
|
```js
|
19
32
|
function main(params){
|
20
33
|
|
4
test
CHANGED
@@ -10,7 +10,8 @@
|
|
10
10
|
|
11
11
|
GASコード内に、
|
12
12
|
sheet.getRange(行,列).setNumberFormat("@");
|
13
|
-
の行を追加し、
|
13
|
+
の行を追加し、
|
14
|
+
そのあとの入力部分は
|
14
15
|
sheet.getRange(66,30).setValue(params.event.ts.toString());
|
15
16
|
|
16
17
|
のように、末尾にtoString() を付ける。
|
3
test
CHANGED
@@ -3,16 +3,17 @@
|
|
3
3
|
|
4
4
|
対象セルの表示形式を数値ではなく、**書式なしテキスト**に変えてみてはいかがでしょうか。
|
5
5
|
|
6
|
-
|
6
|
+
|
7
7
|
小数第6位まで表示させたいセルをクリック
|
8
8
|
メニュー→表示形式→数字→カスタム数値数式
|
9
9
|
「@」と入力して「適用」ボタンをクリック
|
10
10
|
|
11
|
-
または
|
12
|
-
② GASで設定する方法
|
13
11
|
GASコード内に、
|
14
12
|
sheet.getRange(行,列).setNumberFormat("@");
|
15
|
-
の行を追加
|
13
|
+
の行を追加し、入力部分は
|
14
|
+
sheet.getRange(66,30).setValue(params.event.ts.toString());
|
15
|
+
|
16
|
+
のように、末尾にtoString() を付ける。
|
16
17
|
```js
|
17
18
|
function main(params){
|
18
19
|
|
2
修正
test
CHANGED
@@ -23,7 +23,7 @@
|
|
23
23
|
sheet.getRange(66,30).setNumberFormat("@");
|
24
24
|
|
25
25
|
//parseしたデータからevent.tsを指定
|
26
|
-
sheet.getRange(66,30).setValue(params.event.ts);
|
26
|
+
sheet.getRange(66,30).setValue(params.event.ts.toString());
|
27
27
|
以下省略
|
28
28
|
}
|
29
29
|
```
|
1
修正
test
CHANGED
@@ -1,22 +1,26 @@
|
|
1
|
+
Slackが返すタイムスタンプを数値として表示させるときに、GASで扱える浮動小数点数の範囲で扱おうとして
|
2
|
+
小数第6位が丸められている可能性があります。
|
3
|
+
|
1
|
-
|
4
|
+
対象セルの表示形式を数値ではなく、**書式なしテキスト**に変えてみてはいかがでしょうか。
|
5
|
+
|
2
6
|
① Googleスプレッドシートのメニューから設定する方法
|
3
7
|
小数第6位まで表示させたいセルをクリック
|
4
8
|
メニュー→表示形式→数字→カスタム数値数式
|
5
|
-
「
|
9
|
+
「@」と入力して「適用」ボタンをクリック
|
6
10
|
|
7
11
|
または
|
8
12
|
② GASで設定する方法
|
9
13
|
GASコード内に、
|
10
|
-
sheet.getRange(行,列).setNumberFormat("
|
14
|
+
sheet.getRange(行,列).setNumberFormat("@");
|
11
|
-
の行を追加する。
|
15
|
+
の行を追加する。
|
12
16
|
```js
|
13
17
|
function main(params){
|
14
18
|
|
15
19
|
var spreadsheet = SpreadsheetApp.openById('XXXXXXXXXXXXXXXX');
|
16
20
|
var sheet = spreadsheet.getSheetByName('XXXX');
|
17
21
|
|
18
|
-
//
|
22
|
+
//書式なしテキストに設定
|
19
|
-
sheet.getRange(66,30).setNumberFormat("
|
23
|
+
sheet.getRange(66,30).setNumberFormat("@");
|
20
24
|
|
21
25
|
//parseしたデータからevent.tsを指定
|
22
26
|
sheet.getRange(66,30).setValue(params.event.ts);
|