2017-03-23 3 views
0

Ich versuche herauszufinden, wie Sie mithilfe von Advanced Drive Services in Google Apps Script ein paar Dinge tun können.Erstellen von Tabellen mit Advanced Drive Services

 

1)Erstellen einer Tabelle mit x Höhe von Zeilen und Spalten:
Wenn eine neue Tabelle erstellen, wie könnte ich es nur 1 Zeile und 6 Spalten machen? Im Moment erstelle ich die Tabelle mit der Funktion in # 2 und lösche dann die Zeilen und Spalten. Aber es wäre besser, wenn ich stattdessen die Tabellenkalkulation nur eine bestimmte Anzahl von Zeilen und Spalten hätte.

 

2)Einstellen der Titel der Tabelle:
Wie würde stelle ich den Titel der Tabelle in der Funktion Create() auf den Wert 'Name'? Im Moment erstellt es die Tabelle mit dem Namen 'untitled'.

var file = { 
    title: "", 
    mimeType: MimeType.GOOGLE_SHEETS, 
    parents: [{id: artistSpreadSheetsFolderId}] //I have the folder id 
}; 

function createFile(name) 
{ 
    var fileJson = Drive.Files.insert(file); 
    var fileId = fileJson.id; 
    //how would I set the title of the spreadsheet to the value 'name'? 
} 

 

3)gibt es die ID einer Datei mit dem Namen:
Wenn ich einen Namen in eine Funktion übergeben, wie würde ich die ID dieser Tabelle Erweiterte Verwendung Google Drive-Dienste? Die Dateien wären in einem Ordner, so dass ich die ID dieses Ordners bereits hätte.

function getFileId(name) 
{ 
    //get file by name 
    //get that files id 
} 

 


@Tanaike

Für die ersten, Theres keine Möglichkeit, das zu tun, fortschrittlichen Antrieb Dienste? Wenn nicht, wie würde ich ein Array von Werten in die erste Zeile hinzufügen? Derzeit habe ich das: var headers = [["1", "2", "3", "4,", "5", "6"]]; und dann mache ich sheet.getRange(range).setValues(headers);. Gibt es eine Möglichkeit, diese Werte im Eigenschaftenteil von tablesheet.create festzulegen?

Für die zweite habe ich die var-Datei außerhalb der Funktion, so dass mehrere Funktionen es aufrufen können. Ich wollte den Namen der Tabelle nach der Erstellung (nach der var fileId) auf den Namen setzen, der übergeben wird, also - .setTitle (name) oder so ähnlich. Also in einer Funktion kann ich einfach var file = Drive.Files.insert (file); und dann wie var fileName = // setze hier den Namen ein.

Für die dritte, ist das nur eine for-Schleife? wie für (var i = 0; i < drive.files.list.length; i ++)?

Antwort

1

Wie wäre es mit folgenden Antworten? Um das folgende Skript zu verwenden, aktivieren Sie bitte Drive API und Sheet API für Advanced Drive Services und Google API Console.

Referenzen:

die API-Laufwerk aktivieren https://developers.google.com/drive/v3/web/enable-sdk

Google Sheets API v4 https://developers.google.com/sheets/api/

1. eine Tabelle mit x Höhe von Zeilen und Spalten erstellen

dies für können Sie die Google Sheet-API verwenden. Tabellenkalkulation kann erstellt werden, indem die Anzahl der Zeilen und Spalten als anfängliche Eigenschaften angegeben wird. Bei dieser Methode kann der übergeordnete Ordner jedoch nicht festgelegt werden, wenn er erstellt wird. Nach der Erstellung muss der übergeordnete Ordner geändert werden.

Sheets.Spreadsheets.create({ 
    "sheets": [ 
    { 
     "properties": { 
     "gridProperties": { 
      "columnCount": 6, 
      "rowCount": 1 
     } 
     } 
    } 
    ], 
    "properties": { 
    "title": "filename" 
    } 
}); 

2. den Titel der Tabelle einstellen

Ich könnte nicht in der Lage sein, Ihre Frage zu verstehen. Möchten Sie eine neue Tabelle mit einem von Ihnen festgelegten Namen erstellen? Oder möchten Sie den Namen der erstellten Tabelle abrufen? Wenn es nicht beides gibt, kannst du es mir sagen.

var res = Drive.Files.insert({ 
    "title": "test", // Here, it gives a title of new spreadsheet. 
    "mimeType": "application/vnd.google-apps.spreadsheet", 
    "parents": [{"id": "#####"}] 
}); 
Logger.log(res.title) // Here, it retrieves the title of created spreadsheet. 

3. Abrufen der ID einer Datei mit dem Namen

Datei-ID als ein Array zurückgegeben wird. Es wurde angenommen, dass es Dateien mit gleichen Namen gibt.

function getFileId(name){ 
    return [i.id for each (i in Drive.Files.list({q: "title='" + name + "' and trashed=false"}).items)]; 
} 

Es tut mir leid wegen meiner schlechten Englisch.


Answes für neue Fragen 1

A1: Für die erste, verwendet es fortschrittliche Antriebsleistungen. Wenn Sie Daten mit dieser API importieren möchten, gehen Sie folgendermaßen vor. Folgende Beispielimporte 1, 2, 3 zu a1, b1, c1 beziehungsweise. Beim zweiten Durchlauf dieses Skripts werden die Daten unterhalb der ersten Daten hinzugefügt.

var values = [[1, 2, 3]]; 
Sheets.Spreadsheets.Values.append(
    {"values": values}, 
    '## Sheet ID ##', 
    'a1', 
    {valueInputOption: 'RAW'} 
) 

A2: Sie können Daten in JSON wie folgt hinzufügen.

var file = { 
    title: "", 
    mimeType: MimeType.GOOGLE_SHEETS, 
    parents: [{id: artistSpreadSheetsFolderId}] //I have the folder id 
}; 

function createFile(name) 
{ 
    file.title = name; 
    var fileJson = Drive.Files.insert(file); 
    var fileId = fileJson.id; 
    //how would I set the title of the spreadsheet to the value 'name'? 
} 

A3:

Dies ist Verständnis.

Dies ist das gleiche zu folgenden Skript.

var items = Drive.Files.list({q: "title='" + name + "' and trashed=false"}).items; 
var ar = []; 
for (var i=0; i<items.length; i++){ 
    ar.push(items[i].id); 
} 
return ar; 

Answes für neue Fragen 2

A1: Verfahren einschließlich der Daten, wenn es Kalkulationstabelle erstellt, ist wie folgt. Im folgenden Skript werden Daten von 1, 2, 3 in a1, a2, a3 importiert. Es gibt verschiedene Parameter. Also bitte hier klicken https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.

Sheets.Spreadsheets.create({ 
    "sheets": [ 
    { 
     "properties": { 
     "gridProperties": { 
      "columnCount": 6, 
      "rowCount": 1 
     } 
     }, 
    "data": 
     [ 
     { 
      "rowData": 
      [ 
      { 
       "values": 
       [ 
       {"userEnteredValue": {"numberValue": 1}}, 
       {"userEnteredValue": {"numberValue": 2}}, 
       {"userEnteredValue": {"numberValue": 3}} 
       ] 
      } 
      ] 
     } 
     ] 
    } 
    ], 
    "properties": { 
    "title": "filename" 
    } 
}); 

A2: Sie können folgende Skript verschieben Ordner verwenden.

Drive.Files.update(
    {"parents": [{"id": "## Folder ID ##"}]}, 
    "## File ID ##" 
) 
+0

Ich bearbeite die Post mit den Fragen hier. – user4411473

+0

Zusätzliche Antworten für Ihre neuen Fragen. – Tanaike

+0

für 1, anstatt die Werte anzuhängen, wie würde ich die [[1,2,3]] zum .create json Teil hinzufügen? Ich sehe, dass theres ein Werte: [{}] oder rowData: [{object (rowData)}], aber ich kann nicht, dass es funktioniert. ** edit **: Wie würde ich die erstellte Tabelle von # 1 in einen Ordner speichern? – user4411473

Verwandte Themen