使用google脚本将.csv文件导入现有google工作表。格式问题。

使用google脚本将.csv文件导入现有google工作表。格式问题。,csv,google-apps-script,google-sheets,google-drive-api,Csv,Google Apps Script,Google Sheets,Google Drive Api,当新的.csv文件从我的单驱动器文件夹导入到现有的google工作表中时,有没有办法不复制标题?我希望将.csv文件按顺序添加到现有工作表中,而不添加标题…例如,第2行和第19行显示。另外,在A列中按顺序排列日期。我的另一个问题是,你知道第10行发生了什么吗?每次发生这种情况时,我都会在中删除并重新输入新数据。这是我现在的剧本。这是指向工作表及其外观的可共享链接。这是我现在的剧本 function appendingCSV() { var ss=SpreadsheetApp.getActive

当新的.csv文件从我的单驱动器文件夹导入到现有的google工作表中时,有没有办法不复制标题?我希望将.csv文件按顺序添加到现有工作表中,而不添加标题…例如,第2行和第19行显示。另外,在A列中按顺序排列日期。我的另一个问题是,你知道第10行发生了什么吗?每次发生这种情况时,我都会在中删除并重新输入新数据。这是我现在的剧本。这是指向工作表及其外观的可共享链接。这是我现在的剧本

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();
 }
在loadFiles()脚本中。试着把它改成这样

function loadFiles(folderID)
{
  //var folderID = (typeof(folderID) !== 'undefined')? folderID : 'Your_folder_id';
  var folderID = (typeof(folderID) !== 'undefined')? folderID : 'Your_folder_id';
  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().split('\n').splice(0,1).join('\n') + '\n';
      //s += file.getBlob().getDataAsString() + '\n';
      file.setName(filename.slice(0,-3) + 'old');
    }
  }
  return s;
}

你可能得玩一下这个。我不确定是否需要最后一个'\n',我不太擅长链接这么多操作。但是您需要从每个文件中删除头。你可以写一个本地脚本,你给你的技术人员,剥离了标题的起源,在这种情况下,然后回到现在的方式

把第一行剪接下来?在脚本中怎么做?我没有想过。好吧,我如何将拼接合并到我当前的代码中,以便将来导入.csv文件时,只将信息放入工作表中?没有重复的标题。我会玩它,看看我能不能让它工作!我会再打给你的。本地脚本不是一个坏主意,但是他们用来提交表单的应用程序需要标题,这样技术人员就可以输入正确的数据类型。该脚本将能够在进入我的gmail之前操纵标题。然后到一个驱动器文件夹,然后到工作表?脚本什么时候会使用它们的形式?我在拼接上犯了一个错误,我只是将其更改为拼接(0,1),因此我认为这意味着它将删除第一项。Cooper-第一个拼接效果更好。我在google工作表中手动设置了标题,当我运行脚本时,它会将.csv文件放在那里,没有标题,就在我手动输入的标题下。0,1接头仅输入标题。我还删除了最后一个(+'\n')。我的最后一个问题是,你知道第9排有什么问题吗?我不知道为什么它总是这样把信息放在那里。也许这是我让技术人员发送的表单应用程序的格式问题。也你看到第15-18行之间的间隙了吗?它将两种形式分开。可以消除间隙吗?不介意间隙。我知道差距是多少。就在第九排。也许它是格式化的,我只是删除它,看看它是否会继续使用.csv文件接收到的其他数据。