是否可以获得 .dsv 格式的 URL for google sheet?

Is it possible to get the URL for google sheet in .dsv format?

我刚刚发现可以将 google sheet 导出为 csv 格式,但实际上我需要分隔符为“|”而不是“,” 有什么办法吗?

要将特定 sheet 下载为 CSV 文件,请将 {key} 替换为文档的 ID,将 {sheet_name} 替换为要导出的 sheet 的名称:

https://docs.google.com/spreadsheets/d/{key}/gviz/tq?tqx=out:csv&sheet={sheet_name}

试试这个(您可能必须用引号将数据封装起来。)。此处文件存储在 'test' 文件夹中(以适应您的项目)。

const where = 'test' // here the name of folder where you want to record the file
function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('* Export ... *')
    .addItem('... to .dsv format !', 'createDSVFile')
    .addToUi();
}
// you have to declare a trigger on onEdit
function onEdit(event){
  var sh = event.source.getActiveSheet();
  if (sh.getName()=='mySheet'){
    createDSVFile()
  }
}
function createDSVFile() {
  var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var lr=sh.getLastRow();
  var lc=sh.getLastColumn();
  var sep = '|';
  var txt = '';
  for (var i=1;i<=lr;i++){
    for (var j=1;j<=lc;j++){
      txt += sh.getRange(i,j).getValue() + sep
    }
    txt = txt.substring(0,txt.length-1) + '\n'
  }
  var folders = DriveApp.getFoldersByName(where);
  if (folders.hasNext()) {
    var folder = folders.next();
    saveData(folder, 'myDSVFile.dsv',txt);
  }
}
function saveData(folder, fileName, content) {
  var children = folder.getFilesByName(fileName);
  var file = null;
  if (children.hasNext()) {
    file = children.next();
    file.setContent(content);
  } else {
    file = folder.createFile(fileName, content);
  }
  toast('File "' + fileName + '" recorded !')
}
function toast(body, title, timeout) {
  return SpreadsheetApp.getActive().toast(
    body,
    title || "information",
    timeout || 5 // In seconds
  );
}

https://docs.google.com/spreadsheets/d/1h1xXLEOScw2duqydJwtBvZcsfO2vHI05WOf3fojC6VI/copy