早上好,
我的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 );
}
}

非常感谢你的帮助!
答案 0 :(得分:1)
这次修改怎么样?此修改后的脚本假设您使用Spreadsheet的容器绑定脚本。
getBlob()
从文件中检索blob。getDataAsString()
从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
}
delimiter
。在此脚本中,\t
用作分隔符。