从 Drive Tables 中删除数据并自动重新导入新数据

Deleting data from Drive Tables and automatically re-importing new data

我需要帮助来了解如何从 table 中删除所有数据,然后尝试自动将包含数据的新 sheet 导入到新清除的 table 中。

我目前正在尝试客户端的 unload() 方法,但这似乎并没有清除我的 tables

function ClearDown(){
  app.datasources.P11d.unload(function(){});
  console.log('Finish Delete');
}

我也试过创建一个服务器端函数,但似乎也不起作用

function ClearTable(){
  var records = app.models.P11d.newQuery();
//   records.run();
  console.log('Server Function Ran');
  app.deleteRecords(records.run());
}

这是来自客户端函数的运行:

function Delete(){
 google.script.run.withSuccessHandler(function(result){
 }).ClearTable();
  console.log('Function Ran');
}

同样这一切都无济于事

对于导入端,我尝试执行以下操作:- 客户端:

function ImportData(){
  console.log('Begin');
  var ss = SpreadsheetApp.openById('SHEET ID');
  var values = ss.getSheetByName('P11d').getDataRange().getValues();
  var ssData = [];
//   app.datasources.P11d.unload(function(){});
  for (var i = 0; i<values.length; i++){
    var newRecord = app.models.P11d.newRecord();
   // add all fields to the new record
    newRecord.Reg_Number = values[i][0];
    newRecord.Reg_Date = values[i][1];
    newRecord.Model_Description = values[i][2];
    newRecord.P11d_Value = values[i][3];
    newRecord.EngineSize = values[i][4];
    newRecord.Fuel = values[i][5];
    newRecord.CO2 = values[i][6];
    newRecord.SIPP = values[i][7];
    newRecord.GTA_Code = values[i][8];
    newRecord.Type = values[i][9];
    ssData.push(newRecord);
//     console.log(newRecord.MODEL_FIELD);
  }
  console.log('Finished');
// return the array of the model.newRecord objects that would be consumed by the Model query.
}

请有人帮忙解决这个问题,目前将数据发送给我的方式是将新内容添加到驱动器中 Table 导致很多重复。

提前致谢,

您可以使用 AMU Library

删除电子表格中的所有记录、导入和读取

将服务器和客户端脚本复制并粘贴到您的应用中。

我相信这会让事情变得更容易!

要使用此删除模型中的所有数据: 单击按钮:

google.script.run.AMU.deleteAllData('ModelName');

在服务器上删除记录的正确方法是:

app.models.MODEL_NAME.deleteRecords(key_array); 

datasource.unload() 只是在客户端卸载小部件。不影响数据库记录。

在服务器上编写记录查询的更好方法是:

var query = app.models.MODEL_NAME.newQuery(); 
query.filters.your_filter_here;
var records = query.run(); 

请注意,在不使用 function posted here 的情况下,您不能 return 来自除计算模型函数之外的任何内容的单个记录或记录数组。 (您可以 return 对任何 json 数据使用 stringify 的记录的单个字段。)

我目前正在研究一种解决方案,以创建 App Maker 所需的数据源独立表。

对于服务器上的删除功能,请尝试稍微更改您的代码,该功能至少对我有用,但是我已经有一段时间不需要使用它了。

function ClearTable(){
  var records = app.models.P11d.newQuery().run();
  console.log('Server Function Ran');
  app.deleteRecords(records);
}