2017-12-28 8 views
1

Ich versuche, mehrere Datenzeilen unter der Überschrift hinzuzufügen. Dies wird zu einer neuen Tabelle. All dies läuft auf demselben Ereignishandler.Wie fügt man mehrere Zeilen gleichzeitig über Add-In zu Excel hinzu?

Derzeit wird die Tabelle erstellt, und die Header und Header-Werte tun auch. Die Datenzeilen werden jedoch nicht geladen.

Hier ist der Code, den ich habe die Tabelle zu erstellen und die Kopf- und Zeilen füllen:

function createTable() { 
    Excel.run(function (context) { 

    const currentWorksheet = context.workbook.worksheets.getActiveWorksheet(); 
    const expensesTable = currentWorksheet.tables.add("A1:D1", true /*hasHeaders*/); 
    expensesTable.name = "ExpensesTable"; 

    expensesTable.getHeaderRowRange().values = 
     [["Date", "Merchant", "Category", "Amount"]]; 

    expensesTable.rows.add(null /*add at the end*/, [ 
     ["1/1/2017", "The Phone Company", "Communications", "120"], 
     ["1/2/2017", "Northwind Electric Cars", "Transportation", "142.33"], 
     ["1/5/2017", "Best For You Organics Company", "Groceries", "27.9"], 
     ["1/10/2017", "Coho Vineyard", "Restaurant", "33"], 
     ["1/11/2017", "Bellows College", "Education", "350.1"], 
     ["1/15/2017", "Trey Research", "Other", "135"], 
     ["1/15/2017", "Best For You Organics Company", "Groceries", "97.88"] 
    ]); 

    expensesTable.columns.getItemAt(3).getRange().numberFormat = [['€#,##0.00']]; 
    expensesTable.getRange().format.autofitColumns(); 
    expensesTable.getRange().format.autofitRows(); 

    return context.sync(); 
    }) 
    .catch(function (error) { 
    console.log("Error: " + error); 
    if (error instanceof OfficeExtension.Error) { 
     console.log("Debug info: " + JSON.stringify(error.debugInfo)); 
    } 
    }); 
} 

Dieser diesen Fehler produzieren:

Error: InvalidArgument: The argument is invalid or missing or has an incorrect format. 

Debug info: { 
    "code":"InvalidArgument", 
    "message":"The argument is invalid or missing or has an incorrect format.", 
    "errorLocation":"TableRowCollection.add" 
} 

ich the JS API docs über die tableRowCollection gelesen haben Objekt und seine Add-Methode, aber ich sehe nicht, was ich hier falsch mache. Jede Hilfe wäre WUNDERBAR!

+0

Ich würde zuerst mit -1 statt Null versuchen und eine einzelne Zeile hinzufügen. (Debugging-Schritte.) –

+0

Das ist ein guter Vorschlag, danke Andy. Ich habe das ausprobiert und es funktioniert für das Einfügen von jeweils einer Zeile (sowohl mit Null als auch mit -1). Vielleicht sollte ich besser fragen, wie ich in eine größere Anzahl von Zeilen/Daten einsteigen könnte? –

+1

Ich kann das überhaupt nicht replizieren. Dein Code läuft gut für mich. Können Sie die von Ihnen verwendete Version von Excel angeben? Könnten Sie auch hinzufügen, wie Sie die 'office.js' referenzieren? –

Antwort

1

Dank der obigen Kommentare wurde mir klar, dass ich keinen Zugriff auf die API-Versionen über 1.1 bekam. Dies war aufgrund einer alten Excel-Version. Ich habe Excel aktualisiert und starte jetzt eine aktuelle Version von 16.0, Build 8730.2046.

enter image description here

Siehe this page for details ab, welche API-Version verfügbar ist, was Excel aufzubauen.

Verwandte Themen