arrays - Google Script 从 Google Drive 导入 txt 文件
问题描述
所以我正在尝试编写一个脚本来根据文件名和选项卡名称导入文本文件。
txt 文件是游戏服务器日志提取,3 种不同类型的日志。
我已经设法让脚本根据文件名(类型)导入文本,但是在移动到下一个类型或日志之前在循环结束时运行一些简单的格式时遇到问题。
基本上,脚本从日志文件中导入所有文本,将其解析为 CSV 并将其转储到工作表中。该工作表删除了重复项,将文本拆分为列等,它们应该转到下一种类型的日志(和切换选项卡) - 重复。
我还在接脚本所以请温柔....!任何帮助是极大的赞赏。
function ImportAll() {
var folderID = "my google drive foler"
var folder = DriveApp.getFolderById(folderID);
var ss, sRow, lRow, fRow, csvData, logFile, file, sheet =
SpreadsheetApp.getActive();
var data = [];
var logType = ["admin_", "kill_", "login_"]
var allSheets = ['Admin', 'Kill', 'Login']
for (var k = 0; k < logType.length; k++) {
var files = folder.searchFiles('title contains "' + logType[k] + '"');
while (files.hasNext()) {
file = files.next();
data.push(file.getName())
};
ss = sheet.getSheetByName(allsheets[k])
sRow = ss.getDataRange().getLastRow() + 1;
//Browser.msgBox(data[0])
for (var i = 0; i < data.length; i++) {
logFile = DriveApp.getFilesByName(data[i]).next();
csvData = Utilities.parseCsv(logFile.getBlob().getDataAsString());
fRow = ss.getDataRange().getLastRow() + 1;
ss.getRange(fRow, 1, csvData.length, csvData[0].length).setValues(csvData);
};
lRow = ss.getDataRange().getLastRow();
ss.getRange('A' + sRow + ':A' + lRow).removeDuplicates().activate();
ss.getRange('A' + sRow + ':A' + lRow).splitTextToColumns('-');
ss.getRange('B' + sRow + ':B' + lRow).splitTextToColumns(':');
ss.getRange('B:B').setNumberFormat('HH:mm:ss');
ss.getFilter().remove();
ss.getRange('A1:E' + lRow).createFilter();
var rng = sheet.getRange('D2:D' + lRow)
var rngV = rng.getValues();
var String = "";
for(var i=0;i<rngV.length;i++)
{
String = rngV[i].toString().replace(s, '')
rngV[i] = String // is working
}
rng.setValues(rngV) // NOT WORKING!!!!!!
//sheet.appendRow(data); //throws [L]JavaLang@****
}
};
}
我不断被抛出“TypeError:无法调用 null 的方法“getDataRange”。” 错误,我尝试了很多不同的东西都无济于事。
解决方案
推荐阅读
- amazon-web-services - 为什么我的 API 请求在加载 CloudFront 缓存的页面时不发送?
- apache-kafka - 如何确保 kafka 集群完全启动?
- apache - ColdFusion 服务器正在运行,XAMPP 正在运行,但浏览到 URL http://localhost/coldfusion/cfusion/wwwroot/variable.cfml 显示 CFML 源?
- amazon-web-services - 如何进行地理距离查询仅返回我尚未“喜欢”的结果、Elastic Search、Dynamo DB
- ubuntu - 如何更改 nginx hls 文件的名称?
- javascript - 为什么变量声明不允许作为参数,但函数声明是?
- python-3.x - 具有嵌入(300D GloveVec)层的 CNN 自动编码器,用于 10-15 个单词的句子由于填充而无法正常工作
- c - 多处理器系统上的关键部分和内存栅栏/屏障
- google-sheets - Google 表单对现有 Google 工作表列的响应并保持现有格式
- optimization - 在着色器中乘以 2 的幂时的 gpu 优化