将Google表格导出到云端硬盘

时间:2019-02-21 20:28:44

标签: google-apps-script google-sheets drive

目标:将数据从一张纸导出到在云端硬盘中创建的CSV文件中。

当前,代码正在使用正确的命名约定创建电子表格。

问题:数据没有从工作表合并到创建的CSV中。 电子表格包含1个单元格,其单词为“ undefined”。

function exportCSV() {
  var ui = SpreadsheetApp.getUi()
  var app = SpreadsheetApp;
  var ss = app.openById('REDACTED');
  var exportSheet = ss.getSheetByName('Export');
  var placementSheet = ss.getSheetByName('Placement Builder')
  var csvName = placementSheet.getRange('B12').getValue();
  var fileName = csvName + ".csv";
  var csvFile = convertRangeToCsvFile_(fileName);
  var folderId = placementSheet.getRange('B11').getValue();
  DriveApp.getFolderById(folderId).createFile(fileName, csvFile, MimeType.CSV);

  function convertRangeToCsvFile_(csvFileName) {
    var ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Export').getActiveRange();
    try {
      var data = ws.getValues();
      Logger.log(ws);
      var csvFile = undefined;
      if (data.length > 1) {
        var csv = "";
        for (var row = 0; row < data.length; row++) {
          for (var col = 0; col < data[row].length; col++) {
            if (data[row][col].toString().indexOf(",") != -1) {
              data[row][col] = "\"" + data[row][col] + "\"";
            }
          }
          if (row < data.length - 1) {
            csv += data[row].join(",") + "\r\n";
          } else {
            csv += data[row];
          }
        }
        csvFile = csv;
      }
      return csvFile;
    } catch (err) {
      Logger.log(err);
      Browser.msgBox(err);
    }
  }
}

0 个答案:

没有答案