簡體   English   中英

如何將特定數量的行導出到 Google 表格中的文本文件

[英]How to export a specific number of rows to text files in Google Sheets

我想將一列中的每 7 行導出到 Google 驅動器文件夾內的多個文本文件。

我已經想出了如何將單行導出到文本文件中,而不是將多行導出到一個文本文件中。

我有這個成功地將一行導出到一個文本文件:

function saveToTextfile() {
  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getActiveSheet();
  var range = sheet.getRange(1, 1, sheet.getLastRow(), sheet.getLastColumn());
  var rows = range.getValues();
  var folder = DriveApp.getFoldersByName("folderName").next();
  var files = folder.getFiles();
  while(files.hasNext()) files.next().setTrashed(true);
  rows.forEach(function(row, index) {
    folder.createFile("row" + index + ".txt", row.join(", "));
  });
}

如何將一行到一個文本文件更改為七行到一個文本文件?

  • 您希望將電子表格中的工作表中的值創建為文本文件。
  • 您希望每 7 行創建一個文本文件。
    • 您想在 Google Drive 的特定文件夾中創建文本文件。
    • 例如,如果行數為 20,則創建 3 個文本文件。
  • 您想使用 Google Apps 腳本來實現這一點。

如果我的理解是正確的,這個修改怎么樣? 請將此視為幾個答案之一。

修改后的腳本:

請按如下方式修改您的腳本。

從:
 rows.forEach(function(row, index) { folder.createFile("row" + index + ".txt", row.join(", ")); });
到:
 var limit = 7; // In your case, the rows are used every 7 rows. var split = Math.ceil(rows.length / limit); for (var i = 0; i < split; i++) { var data = rows.splice(0, limit); var str = data.map(function(e) {return e.join(", ")}).join("\\n"); var filename = "row" + (i * limit + 1) + "-" + (data.length == limit ? (i + 1) * limit : (i + 1) * limit - (limit - data.length)) + ".txt"; folder.createFile(filename, str, MimeType.PLAIN_TEXT); }
  • 在這個修改后的腳本中,當行數為 20 時,會創建row1-7.txtrow8-14.txtrow15-20.txt 3 個文本文件。
  • 在每個文本文件中,每一行都由\\n分割。

參考:

如果我誤解了您的問題並且這不是您想要的結果,我深表歉意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM