簡體   English   中英

Google Apps 腳本:嘗試使用.getAs(MimeType.PLAIN_TEXT) 從 Google Drive 讀取文本文件

[英]Google Apps Script: trying to read a text file from Google Drive with .getAs(MimeType.PLAIN_TEXT)

我在嘗試從 Google Drive 讀取 HTML 文件時遇到了麻煩。 所以

我試過了:

  1. UrlFetchApp.fetch("https://googledrive.com/host/{folderID}/{filename}.html")的幫助下獲取文本,但它會獲取一些 google css 文件而不是我的文件。

  2. 使用file.getAs(MimeType.PLAIN_TEXT)將文件從 blob 轉換為文本字符串,它只輸出“Blob”而沒有任何文件內容。 如何在沒有任何特定庫的情況下提取文件文本?

  var dApp = DriveApp;
  var folderIter = dApp.getFoldersByName("Лаборатории ФББ");
  var folder = folderIter.next();
  var filesIter = dApp.getFilesByName("Labs.html");

  var filelist = [];
  var propfiledate = 0;
  var propfilename;

  while(filesIter.hasNext()){

    var file = filesIter.next();
    var filename = file.getName();
    var fileurl = file.getUrl();
    var filedate = file.getDateCreated();

    if(filedate >= propfiledate){

      var propfiledate = filedate;
      var propfileurl = fileurl;
      var propfilename = filename;
      var propfile = file;

    }
  }

  Logger.log(propfile);

  // 1st try var myHtmlFile = UrlFetchApp.fetch(propfileurl);
  // 2nd try var myHtmlFile = propfile.getAs(MimeType.PLAIN_TEXT);
  // 3rd try var myHtmlFile = propfile.getBlob().text();
  
  var ss = SpreadsheetApp.create("test");
  SpreadsheetApp.setActiveSpreadsheet(ss);
  var sheet = ss.getActiveSheet();

  sheet.appendRow(myHtmlFile.toString().split("\n"));

  Logger.log(propfiledate);
  Logger.log(propfilename);
  Logger.log(propfileurl);
}

在虛擬 HTML 文件上使用 Apps 腳本,您可以獲得其中的 HTML 數據。

使用 DriveApp getFilesByName(name)方法,您可以按名稱檢索文件。

這將返回一個FileIterator因為可能有許多具有相似名稱的文件。

然后您可以使用getBlob()獲取文件 blob,並使用getDataAsString()將 blob 數據作為字符串獲取

通過使用前面提到的方法,我設法獲得了 dummyHTML.html 文件數據:

function myFunction() {
  var files = DriveApp.getFilesByName("dummyHTML.html");
  while (files.hasNext()) {
    var file = files.next();
    Logger.log(file.getBlob().getDataAsString());
  }
}

暫無
暫無

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

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