首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在一个工作表中导入多个csv文件

在一个工作表中导入多个csv文件
EN

Stack Overflow用户
提问于 2015-08-04 05:00:01
回答 1查看 159关注 0票数 0

我正在尝试将多个csv文件导入到一个工作表中。每个csv文件(Fil)只包含一个这样的数字: 1234,00。没别的了。

这些数字应该导入到几个不同的列(columnFil)中。每批csv文件应在一行中导入。

问题是我不能将几个csv文件放在一行中。所以我尝试使用get- and setValue,但由于某些原因,谷歌脚本在执行这部分时并不一致?

代码语言:javascript
复制
function Daily() {

   var Fil = [121,122,123];
   var columnFil = ["C","D","E"];

  for (var count = 0; count < 3; count++){
  Logger.log(count);


 var tab = "2015";
  var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(tab);
  var fSource = DriveApp.getFolderById('123467890');
  var fi = fSource.getFilesByName(Fil[count]+".csv"); 
  var ss = SpreadsheetApp.openById('0987654321'); 


  if ( fi.hasNext() ) { 
    var file = fi.next();
    var csv = file.getBlob().getDataAsString();
    var csvData = CSVToArray(csv); // see below for CSVToArray function

    // loop through csv data array and insert (append) as rows into 'NEWDATA' sheet
    for ( var i=0, lenCsv=csvData.length; i<lenCsv; i++ ) {

      var rangeToBeMoved = sh.getRange(i+1, 1, 1, csvData[i].length);
      var values = rangeToBeMoved.csvData;
      sh.appendRow(csvData[i]);
}
  }

 var Avals = sh.getRange(tab+"!A1:A").getValues();
 var Alast = Avals.filter(String).length; // get last cell 
  var month = "=Month(A"+Alast+")";
 Logger.log(Alast);
  var csvData = sh.getRange(tab+"!A"+Alast).getValue();

 sh.getRange(tab+"!"+columnFil[count]+Alast).setValue(csvData); 
    var clear = sh.getRange(tab+"!A"+Alast);
      clear.clearContent();
  }
   sh.getRange(tab+"!A"+Alast).setValue(datum);
   sh.getRange(tab+"!B"+Alast).setValue(month);
}

注意,CSVToArray(csv)是http://www.bennadel.com/blog/1504-Ask-Ben-Parsing-CSV-Strings-With-Javascript-Exec-Regular-Expression-Command.htm中的已知函数

EN

回答 1

Stack Overflow用户

发布于 2015-08-04 18:54:00

我可能有一个解决方案。每个CSV导入都会添加到新行中。因此,在导入完成之后,我运行另一个函数(moveData)将数据移动到特定的列。如果有更好/更简单的解决方案,请让我知道!

代码语言:javascript
复制
function moveData() {
var tab = "2015";
var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(tab);

var Fil = [121,122,123];
var columnFil = ["C","D","E"];
var counting = [2,1,0];

for (var count = 0; count < 3; count++){

var Avals = sh.getRange(tab+"!A1:A").getValues();
var Alast = Avals.filter(String).length; // get last cell 

Logger.log("Last row:" + Alast);

var csvData = sh.getRange(tab+"!A"+Alast).getValue();

var Alast = Alast - counting[count]; 

Logger.log("New row is:" + Alast);


sh.getRange(tab+"!"+columnFil[count]+Alast).setValue(csvData); 

var Alast = Alast + counting[count]; 

Logger.log("Cleanup old row: " + Alast);

var clear = sh.getRange(tab+"!A"+Alast);
clear.clearContent();

  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31796670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档