简体   繁体   中英

Tab characters converted to spaces in Google Apps Script

I have a Google Apps Script I am writing that combines a number of reports into a consolidated tab-delimited (TSV) format. However, I am noticing that whenever I write to file, the tabs in my strings are being converted into spaces. Is there some other string literal that I should use?

    var content = 
        data.parameters.time[0] + "\t" +
        data.parameters.url[0] + "\t" +
        data.parameters.code_name[0] + "\t" +
        data.parameters.app_name[0] + "\t" +
        data.parameters.version[0] + "\t" +
        data.parameters.cookies[0] + "\t" +
        data.parameters.lang[0] + "\t" +
        data.parameters.platform[0] + "\t" +
        data.parameters.user_agent[0] + "\t" +
        data.parameters.ex[0];
    fld.createFile(makeid() + ".tab", content, ContentService.MimeType.CSV);

Nothing is wrong with using the \\t string literal - rather you're using the wrong MimeType enum, from the ContentService . DriveApp methods expect MimeType as a string . Try:

fld.createFile(makeid() + ".tab", content, MimeType.CSV);

Here's a snippet that shows the tab characters survive the file write when the MimeType is properly set:

function myFunction() {
  var content = 
        'time' + "\t" +
        'url' + "\t" +
        'code_name' + "\t" +
        'etcetera';
  Logger.log("Initial TSV: " + JSON.stringify(content.split("\t")));

  var newFile = DriveApp.createFile("Delete-me" + ".tab", content, MimeType.CSV);

  // Check our result, by reading back the file
  var blob = newFile.getBlob();
  var docContent = blob.getDataAsString()
  Logger.log("Result TSV: " + JSON.stringify(docContent.split("\t")));
}

Logs:

[15-04-07 14:53:08:767 EDT] Initial TSV: ["time","url","code_name","etcetera"]
[15-04-07 14:53:09:542 EDT] Result TSV: ["time","url","code_name","etcetera"]

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM