繁体   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