Google app maker 在excel中导出具有关系的数据
我想将不同数据源的数据导出到Excel。这也没有问题。但我也想在这里输出关系。这不管用,或者我不太明白这应该怎么做 示例:我有一个名为Company的数据源和一个名为Software的数据源。这两个表相互关联(n-m) 现在我想再次导出这些关系 我见过AppMaker有这样一个功能,但不幸的是,我不太明白它应该如何工作 随信附上我的代码,这是服务器代码: 有人能给我解释一下如何导出这种关系吗?先谢谢你Google app maker 在excel中导出具有关系的数据,google-app-maker,Google App Maker,我想将不同数据源的数据导出到Excel。这也没有问题。但我也想在这里输出关系。这不管用,或者我不太明白这应该怎么做 示例:我有一个名为Company的数据源和一个名为Software的数据源。这两个表相互关联(n-m) 现在我想再次导出这些关系 我见过AppMaker有这样一个功能,但不幸的是,我不太明白它应该如何工作 随信附上我的代码,这是服务器代码: 有人能给我解释一下如何导出这种关系吗?先谢谢你 //define function to do the data export fun
//define function to do the data export
function ExportDaten(SoftwareUnternehmen) {
//create sheet to populate data
var fileName = new Date()+"Dienstleisterverzeichnis "; //file name
var newExport = SpreadsheetApp.create(fileName); // create new spreadsheet
var header = ["Name", "Vertragsgegenstand", "Ansprechpartner Dienstleister","Vertragseigner bzw. Verantwortlicher natGAS","Ansprechpartner natGAS","Verträge","App","AVV","NDA","letztes Projekt bzw. letzter Kontakt","Kreditor#","Kdnr beim Lieferanten","Klasse","ISO270001?","DSGVO Tätigkeit nach Verfahrensverzeichnis","Text AVV: Tätigkeit","Text AVV: Bewertung"]; //define header
newExport.appendRow(header); // append header to spreadsheet
//get all Unternehmen records
var ds = app.models.Unternehmen.newQuery();
var dssoftware = app.models.Software.newQuery();
var allSoftware = dssoftware.run();
var allUnternehmen = ds.run();
// Sets a rollback point and starts a new transaction.
app.transaction.cloudSql.start();
// Locks all records that are read in the transaction until the end of the transaction.
app.transaction.cloudSql.setLockOnRead(app.transaction.cloudSql.lockOnRead.UPDATE);
// Relation
var query = app.models.Unternehmen.newQuery();
query.filters.Software._key._equals = SoftwareUnternehmen;
var records = query.run();
for(var i=0; i< allUnternehmen.length; i++) {
//get each student data
var Unternehmen = allUnternehmen[i];
var UnternehmenName =Unternehmen.Hersteller;
// var UnternehmenVertragsgegenstand = Software.;
// var UnternehmenAnsprechpartnerD =Unternehmen.Ansprechpartner_Dienstleister;
// var UnternehmenVertragseigner =Unternehmen.Vertragseigner_Verantwortlicher_Unternehmen;
// var UnternehmenAnsprechpartnerNG =Unternehmen.Ansprechpartner;
// var UnternehmenVertraege =Unternehmen.Vertraege;
// var UnternehmenApp =Unternehmen.App;
// var UnternehmenAVV =Unternehmen.AVV;
// var UnternehmenNDA =Unternehmen.NDA;
// var UnternehmenProjekt =Unternehmen.letztes_Projekt_letzter_Kontakt;
// var UnternehmenKreditor =Unternehmen.Kreditor;
// var UnternehmenKdnr =Unternehmen.Kdnr;
// var UnternehmenKlasse =Unternehmen.Klasse;
// var UnternehmenISO270001 =Unternehmen.ISO270001;
// var UnternehmenDSGVO =Unternehmen.DSGVO_Taetigkeit;
// var UnternehmenText_AVV1 =Unternehmen.Text_AVV1;
// var UnternehmenText_AVV2 =Unternehmen.Text_AVV2;
for (var j= 0; j< allSoftware.length; j++) {
var Software = allSoftware[j];
var UnternehmenVertragsgegenstand = Software.Vertragsgegenstand;
var UnternehmenAnsprechpartnerD =Software.AnSP_Lieferant;
var UnternehmenVertragseigner =Software.Vetragseigner_Vertantwortlicher;
var UnternehmenAnsprechpartnerNG =Software.Ansprechpartner;
var UnternehmenVertraege =Software.Vertraege;
var UnternehmenApp =Software.App;
var UnternehmenAVV =Software.AVV;
var UnternehmenNDA =Software.NDA;
var UnternehmenProjekt =Software.letztes_Projekt;
var UnternehmenKreditor =Software.Kreditor;
var UnternehmenKdnr =Software.KDNR;
var UnternehmenKlasse =Software.Klasse1;
var UnternehmenISO270001 =Software.ISO270001;
var UnternehmenDSGVO =Software.DSGVO_Taetigkeit;
var UnternehmenText_AVV1 =Software.Text_AVV_Taetigkeit;
var UnternehmenText_AVV2 =Software.Text_AVV_Bewertung;
var newRow = [UnternehmenName, UnternehmenVertragsgegenstand, UnternehmenAnsprechpartnerD, UnternehmenVertragseigner, UnternehmenAnsprechpartnerNG, UnternehmenVertraege, UnternehmenApp, UnternehmenAVV, UnternehmenNDA, UnternehmenProjekt, UnternehmenKreditor, UnternehmenKdnr, UnternehmenKlasse, UnternehmenISO270001, UnternehmenDSGVO, UnternehmenText_AVV1, UnternehmenText_AVV2 ]; //save Unternehmensdaten in a row
newExport.appendRow(newRow); //append Unternehmen data row to spreadsheet
}
console.log("Export fertig");
return records;
} }
//定义用于执行数据导出的函数
函数ExportDaten(软件卸载){
//创建工作表以填充数据
var fileName=new Date()+“Dienstleisterverzeichnis”;//文件名
var newExport=SpreadsheetApp.create(文件名);//创建新的电子表格
var标头=[“名称”、“Vertragsgegstand”、“Ansprechpartner Dienstleister”、“Vertragsegener bzw.Verantwortlicher natGAS”、“Ansprechpartner natGAS”、“Verträge”、“App”、“AVV”、“NDA”、“letztes项目bzw.letzter Kontakt”、“Kreditor#”、“Kdnr beim Lieferanten”、“Klasse”、“ISO270001?”、“DSGVO Tätiggeit nach Verfahrensverensverzeichis”、“文本AVV:Täätiggeit”,“Text AVV:Bewertung”];//定义标题
newExport.appendRow(标题);//将标题附加到电子表格
//获取所有未登录记录
var ds=app.models.Unternehmen.newQuery();
var dssoftware=app.models.Software.newQuery();
var allSoftware=dssoftware.run();
var allinternehmen=ds.run();
//设置回滚点并启动新事务。
app.transaction.cloudSql.start();
//锁定事务中读取的所有记录,直到事务结束。
app.transaction.cloudSql.setLockOnRead(app.transaction.cloudSql.lockOnRead.UPDATE);
//关系
var query=app.models.Unternehmen.newQuery();
query.filters.Software.\u key.\u等于=softwareunterneman;
var records=query.run();
对于(变量i=0;i
可能需要看几件事。当表中有大量数据,并且与这些数据有更多关系时,请使用appendRow()事实上,写工作表确实会变得有些低效,您很可能会开始遇到脚本执行限制。此外,您当前的脚本确实包含了几行似乎不必要的代码,因此我将在删除了不必要的行的情况下对您的代码进行修改,并在我添加的行旁边加上一个星号。此外,不要忘记o在结束时解除对记录的锁定
//define function to do the data export
function ExportDaten(SoftwareUnternehmen) {
//create sheet to populate data
var fileName = new Date()+"Dienstleisterverzeichnis "; //file name
var newExport = SpreadsheetApp.create(fileName); // create new spreadsheet
var header = ["Name", "Vertragsgegenstand", "Ansprechpartner Dienstleister","Vertragseigner bzw. Verantwortlicher natGAS","Ansprechpartner natGAS","Verträge","App","AVV","NDA","letztes Projekt bzw. letzter Kontakt","Kreditor#","Kdnr beim Lieferanten","Klasse","ISO270001?","DSGVO Tätigkeit nach Verfahrensverzeichnis","Text AVV: Tätigkeit","Text AVV: Bewertung"]; //define header
newExport.appendRow(header); // append header to spreadsheet
var data = []; //*
//get all Unternehmen records
var ds = app.models.Unternehmen.newQuery();
ds.prefetch.Software._add(); //*
var allUnternehmen = ds.run();
// Sets a rollback point and starts a new transaction.
app.transaction.cloudSql.start();
// Locks all records that are read in the transaction until the end of the transaction.
app.transaction.cloudSql.setLockOnRead(app.transaction.cloudSql.lockOnRead.UPDATE);
for(var i=0; i< allUnternehmen.length; i++) {
//get each student data
var Unternehmen = allUnternehmen[i];
var UnternehmenName =Unternehmen.Hersteller;
var allSoftware = Unternehmen.Software; //*
for (var j= 0; j< allSoftware.length; j++) {
var Software = allSoftware[j];
var UnternehmenVertragsgegenstand = Software.Vertragsgegenstand;
var UnternehmenAnsprechpartnerD =Software.AnSP_Lieferant;
var UnternehmenVertragseigner =Software.Vetragseigner_Vertantwortlicher;
var UnternehmenAnsprechpartnerNG =Software.Ansprechpartner;
var UnternehmenVertraege =Software.Vertraege;
var UnternehmenApp =Software.App;
var UnternehmenAVV =Software.AVV;
var UnternehmenNDA =Software.NDA;
var UnternehmenProjekt =Software.letztes_Projekt;
var UnternehmenKreditor =Software.Kreditor;
var UnternehmenKdnr =Software.KDNR;
var UnternehmenKlasse =Software.Klasse1;
var UnternehmenISO270001 =Software.ISO270001;
var UnternehmenDSGVO =Software.DSGVO_Taetigkeit;
var UnternehmenText_AVV1 =Software.Text_AVV_Taetigkeit;
var UnternehmenText_AVV2 =Software.Text_AVV_Bewertung;
var newRow = [UnternehmenName, UnternehmenVertragsgegenstand, UnternehmenAnsprechpartnerD, UnternehmenVertragseigner, UnternehmenAnsprechpartnerNG, UnternehmenVertraege, UnternehmenApp, UnternehmenAVV, UnternehmenNDA, UnternehmenProjekt, UnternehmenKreditor, UnternehmenKdnr, UnternehmenKlasse, UnternehmenISO270001, UnternehmenDSGVO, UnternehmenText_AVV1, UnternehmenText_AVV2 ]; //save Unternehmensdaten in a row
data.push(newRow); //*
}
//console.log("Export fertig");
}
newExport.getActiveSheet().getRange(2,1,data.length,header.length).setValues(data); //*
console.log("Export fertig");
}
//定义用于执行数据导出的函数
函数ExportDaten(软件卸载){
//创建工作表以填充数据
var fileName=new Date()+“Dienstleisterverzeichnis”;//文件名
var newExport=SpreadsheetApp.create(文件名);//创建新的电子表格
var标头=[“名称”、“Vertragsgegenstand”、“Ansprechpartner Dienstleister”、“Vertragsegener bzw.Verantwortlicher natGAS”、“Ansprechpartner natGAS”、“Verträge”、“App”、“AVV”、“NDA”、“letztes Projekt bzw.letzter Kontakt”、“Kreditor”、“Kdnr beim Lieferanten”、“Klasse”、“ISO270001?”、“DSGVO Tätiggeit nach Verfahrensverzeichis”、“文本AVV:Tätiggeit”、”文本AVV:Bewertung“];//定义标题
newExport.appendRow(标题);//将标题附加到电子表格
var数据=[]//*
//获取所有未登录记录
var ds=app.models.Unternehmen.newQuery();
ds.prefetch.Softwa