回答編集履歴

4

既存のデータに追記し、データの全範囲をソートするようにしました。

2023/10/15 05:00

投稿

YellowGreen
YellowGreen

スコア861

test CHANGED
@@ -25,9 +25,10 @@
25
25
  allValues = allValues.concat(values);//変数allValuesに各csvデータを追加
26
26
  }
27
27
  const sheet = SpreadsheetApp.openById(SS_ID).getSheetByName(SHEET_NAME);
28
- sheet.getRange(5, 1, allValues.length, allValues[0].length).setValues(allValues);//5行目A列からデータの最後尾行データの最後尾列にデータをセット
29
- //シート内でソトしたいセル範囲getRangeで指定する
28
+ //スプレッドシートにデ追記
30
- let data = sheet.getRange(5, 1, allValues.length, allValues[0].length);
29
+ sheet.getRange(sheet.getLastRow() + 1, 1, allValues.length, allValues[0].length).setValues(allValues);
30
+ //見出し行を除くシート内データを範囲指定する。
31
+ let data = sheet.getRange(5, 1, sheet.getLastRow() - 5 + 1, sheet.getLastColumn());
31
32
  //列Cを基準に降順でソートする
32
33
  data.sort({ column: 3, ascending: true });//(ソートする列番号,降順か昇順か)true昇順、false降順
33
34
  const moveFiles = folder.getFiles(); //フォルダ内のファイルを一括取得

3

デバッグ用のコードを削除しました。

2023/10/15 04:15

投稿

YellowGreen
YellowGreen

スコア861

test CHANGED
@@ -22,7 +22,6 @@
22
22
  const values = repairParsedCsv(Utilities.parseCsv(csv), 7, 4 - 1);
23
23
 
24
24
  values.splice(0, 4);//見出し行として4行を除外
25
- console.log(values);
26
25
  allValues = allValues.concat(values);//変数allValuesに各csvデータを追加
27
26
  }
28
27
  const sheet = SpreadsheetApp.openById(SS_ID).getSheetByName(SHEET_NAME);
@@ -47,7 +46,6 @@
47
46
  values = parsedCsv.map(v => {
48
47
  let length = v.indexOf('');
49
48
  length = length < 0 ? v.length : length;
50
- console.log(length);
51
49
  const odd = length - numColumns;
52
50
  if (odd) {
53
51
  const result = [];

2

見出し行の行数を修正

2023/10/15 04:10

投稿

YellowGreen
YellowGreen

スコア861

test CHANGED
@@ -21,7 +21,7 @@
21
21
  //次の行は、元の配列が7列で4列目がカンマ付きの列をまとめるものです。
22
22
  const values = repairParsedCsv(Utilities.parseCsv(csv), 7, 4 - 1);
23
23
 
24
- values.splice(0, 5);//見出し行として5行を除外
24
+ values.splice(0, 4);//見出し行として4行を除外
25
25
  console.log(values);
26
26
  allValues = allValues.concat(values);//変数allValuesに各csvデータを追加
27
27
  }

1

データの処理を一部修正しました。

2023/10/15 04:04

投稿

YellowGreen
YellowGreen

スコア861

test CHANGED
@@ -21,7 +21,8 @@
21
21
  //次の行は、元の配列が7列で4列目がカンマ付きの列をまとめるものです。
22
22
  const values = repairParsedCsv(Utilities.parseCsv(csv), 7, 4 - 1);
23
23
 
24
- values.shift();//見出し行を除外
24
+ values.splice(0, 5);//見出し行として5行を除外
25
+ console.log(values);
25
26
  allValues = allValues.concat(values);//変数allValuesに各csvデータを追加
26
27
  }
27
28
  const sheet = SpreadsheetApp.openById(SS_ID).getSheetByName(SHEET_NAME);
@@ -46,6 +47,7 @@
46
47
  values = parsedCsv.map(v => {
47
48
  let length = v.indexOf('');
48
49
  length = length < 0 ? v.length : length;
50
+ console.log(length);
49
51
  const odd = length - numColumns;
50
52
  if (odd) {
51
53
  const result = [];
@@ -66,10 +68,15 @@
66
68
  for (let i = index + odd + 1; i < length; i++) {
67
69
  result.push(v[i]);
68
70
  }
69
- }
71
+ }
70
72
  return result;
71
73
  } else {
74
+ //先頭からnumColumn個の要素を格納
75
+ const result = [];
76
+ for (let i = 0; i < numColumns; i++) {
77
+ result.push(v[i]);
78
+ }
72
- return v;
79
+ return result;
73
80
  }
74
81
  });
75
82
  return values;