簡體   English   中英

如何使用javascript讀取txt文件並將內容復制到谷歌電子表格文件中

[英]How to read txt file and copy the content into a google spreadsheet file using javascript

早上好,

我的 Google 驅動器上有一個文本文件,其中包含許多由數據填充的行和列。

數據示例

ANNO    MESE    GIORNO    D01    D02    D03    D04    D05
2012    4       20        0      2      0      0      0
2012    4       21        0      0      3      0      0
2012    4       22        0      4      0      0      0
2012    4       23        0      0      0      6      0
2012    4       24        0      0      0      0      7

我想訪問此文件並使用 Google 電子表格腳本(javascript 語言)將內容復制到 Google 電子表格文件中。

我嘗試使用以下代碼,但由於我是該語言的新手,我不知道如何訪問數據。

 function LoadData() { var FldrId = '1-Ao-MQMv_VxKF5uajG1o4j5dhVRWDk76'; var FileName = 'TEST_Report_USA.txt'; //Reference to the folder var fldr = DriveApp.getFolderById(FldrId); //Get files by that name var allFilesInFolder = fldr.getFilesByName(FileName); Logger.log('allFilesInFolder: ' + allFilesInFolder); if (allFilesInFolder.hasNext() === false) { return false; }; var cntFiles = 0; //Even if it's only one file, must iterate a while loop in order to access the file (Google drive will allow multiple files of the same name) while (allFilesInFolder.hasNext()) { var thisFile = allFilesInFolder.next(); cntFiles = cntFiles + 1; Logger.log('File Count: ' + cntFiles); var docContent = thisFile.getAs('text/plain'); Logger.log('docContent : ' + docContent ); } }

非常感謝您的幫助!

這個改裝怎么樣? 此修改后的腳本假定您使用電子表格的容器綁定腳本。

改裝要點:

  • 使用getBlob()從文件中檢索 blob。
  • 使用getDataAsString()從 blob 中檢索文本數據。
  • 使用Utilities.parseCsv()將文本數據解析為 csv 數據。
  • 使用setValues()將 csv 數據放入電子表格。

對於這些修改點,請進行如下修改。

從 :

while (allFilesInFolder.hasNext()) {
  var thisFile = allFilesInFolder.next();
  cntFiles = cntFiles + 1;
  Logger.log('File Count: ' + cntFiles);

  var docContent = thisFile.getAs('text/plain');
  Logger.log('docContent : ' + docContent );
}

到 :

var delimiter = "\t"; // Added
while (allFilesInFolder.hasNext()) {
  var thisFile = allFilesInFolder.next();
  cntFiles = cntFiles + 1;
  Logger.log('File Count: ' + cntFiles);

  var docContent = thisFile.getBlob().getDataAsString(); // Modified
  Logger.log('docContent : ' + docContent );
  var csv = Utilities.parseCsv(docContent, delimiter); // Added
  ss.getRange(ss.getLastRow() + 1, 1, csv.length, csv[0].length).setValues(csv); // Added
}

筆記 :

  • 在這個修改后的腳本中,csv 數據被放入綁定腳本的電子表格中。
  • 請修改delimiter 在此腳本中, \\t用作分隔符。

參考 :

暫無
暫無

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

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