2017-12-28 59 views
1

헤더 아래에 여러 행의 데이터를 추가하려고합니다. 이것은 새로운 테이블에있을 것입니다. 이 모든 것은 동일한 이벤트 핸들러에서 실행됩니다.추가 기능을 통해 한 번에 여러 행을 Excel에 추가하는 방법은 무엇입니까?

현재 테이블 이되며 헤더와 헤더 값도 마찬가지입니다. 그러나 데이터 행은로드되지 않습니다.

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" 
} 

나는 tableRowCollection에 대해 the JS API docs를 읽고있다 :이이 오류가 발생합니다

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)); 
    } 
    }); 
} 

: 여기

내가 헤더 행을 테이블을 작성하고 채울 수있어 코드의 Object 및 add 메서드를 사용하지만 여기에서 내가 뭘 잘못하고 있는지 알지 못합니다. 어떤 도움이든 좋을 것입니다!

+0

먼저 null 대신 -1을 시도하고 단일 행을 추가합니다. (디버깅 단계.) –

+0

좋은 제안, 감사 앤디. 나는 그것을 시도하고 한 번에 한 행 (null과 -1 둘 다) 삽입에 대한 작동하지 않습니다. 아마도 내가 어떻게해야 더 많은 양의 행/데이터를 입력 할 수 있을까? –

+1

저는 이것을 전혀 복제 할 수 없습니다. 귀하의 코드는 나를 위해 잘 실행됩니다. 사용중인 Excel 버전을 제공 할 수 있습니까? 또한 'office.js'를 참조하는 방법을 추가 할 수 있습니까? –

답변

1

위의 의견에 감사 드리며, 1.1 이상의 API 버전에 액세스하지 못하고 있음을 알았습니다. 이는 Excel의 오래된 빌드를 사용했기 때문입니다. Excel을 업데이트하고 현재 버전이 16.0 인 8730.2046을 실행 중입니다.

enter image description here

Excel에서 구축 무엇을 볼 수 있습니다 어떤 API 버전에 this page for details를 참조하십시오.