【发布时间】:2017-06-23 14:59:20
【问题描述】:
当新的 .csv 文件从我的一个驱动器文件夹导入现有的谷歌表时,有没有办法不复制标题?我希望将 .csv 文件按顺序添加到现有工作表中,而不添加标题...示例 - 如第 2 行和第 19 行所示。此外,为了使日期在 A 列中按顺序排列。我的另一个问题是,你知道第 10 行发生了什么吗?每次发生这种情况时,我都会删除并重新输入新数据。这是我现在拥有的脚本。这是指向工作表及其外观的可共享链接。 https://docs.google.com/spreadsheets/d/1f9HEwikMxm5sJzzRh_-etBxXzL0NpK47i9LtoZVCv_0/edit?usp=sharing 这是我现在的脚本。
function appendingCSV() {
var ss=SpreadsheetApp.getActiveSpreadsheet()
var sht=ss.getActiveSheet();
var drng = sht.getDataRange();
var lastRow = drng.getLastRow();
var data = loadFiles();
var dataA =Utilities.parseCsv(data);
if(dataA.length>0)
{
var rng = sht.getRange(lastRow + 1, 1, dataA.length, dataA[0].length);
rng.setValues(dataA);
}
else
{
SpreadsheetApp.getUi().alert('No Data Returned from LoadFiles');
}
}
function loadFiles(folderID)
{
var folderID = (typeof(folderID) !== 'undefined')? folderID :
'0B8m9xkDP_TJxUUlueHhXOWJMbjg';
var fldr = DriveApp.getFolderById(folderID);
var files = fldr.getFiles();
var s='';
var re = /^.*\.csv$/i;
while (files.hasNext())
{
var file = files.next();
var filename = file.getName();
if(filename.match(re))
{
s += file.getBlob().getDataAsString() + '\n';
file.setName(filename.slice(0,-3) + 'old');
}
}
return s;
}
function createTimeDrivenTriggers() {
// Trigger every Friday at 09:00.
ScriptApp.newTrigger('myFunction')
.timeBased()
.onWeekDay(ScriptApp.WeekDay.FRIDAY)
.atHour(9)
.create();
}
【问题讨论】:
-
只拼接第一行?
-
如何在脚本中做到这一点?我没想到。
-
好的,如何将拼接合并到我当前的代码中,以便在将来导入 .csv 文件时仅将信息放入工作表中?没有重复的标题。
标签: csv google-apps-script google-sheets google-drive-api