2017-02-23 5 views
1

바인딩을 사용하거나 현재 선택을 사용하여 Excel에 데이터를 쓸 때 콘텐츠 언어에 따라 올바른 숫자 형식을 사용해야합니다.다국어 사용자를위한 Excel 추가 기능 cellFormat

콘텐츠 언어가 영어 인 경우 다음 코드가 실패합니다.

const options = { cellFormat: [{cells: {row: 1}, format: { numberFormat: '#.###,00'}}] }; Office.context.document.setSelectedDataAsync(tableData, options);

못생긴 솔루션은

const options = { cellFormats: [{ cells: { column: 3 }, format: { numberFormat: Office.context.contentLanguage.startsWith('de')? '#.###,00': '#,###.00' } }]; }; Office.context.document.setSelectedDataAsync(tableData, options);

엑셀의 UI를 형성 아는 사용자와 같은 더 추상적 인 currency, number 같은 형식이나 뭔가 없나요 예를

를위한 것입니까?

답변

1

100 % 확신 할 수는 없지만 API의 "새로운"(Office 2016) 웨이브를 사용하려고하면 어떻게 될까요? 같은 뭔가 :

Excel.run(function (ctx) { 
    var sheetName = "Sheet1"; 
    var rangeAddress = "F5:G7"; 
    var numberFormat = [[null, "d-mmm"], [null, "d-mmm"], [null, null]] 
    var values = [["Today", 42147], ["Tomorrow", "5/24"], ["Difference in days", null]]; 
    var formulas = [[null,null], [null,null], [null,"=G6-G5"]]; 
    var range = ctx.workbook.worksheets.getItem(sheetName).getRange(rangeAddress); 
    range.numberFormat = numberFormat; 
    range.values = values; 
    range.formulas= formulas; 
    range.load('text'); 
    return ctx.sync().then(function() { 
     console.log(range.text); 
    }); 
}).catch(function(error) { 
     console.log("Error: " + error); 
     if (error instanceof OfficeExtension.Error) { 
      console.log("Debug info: " + JSON.stringify(error.debugInfo)); 
     } 
}); 

https://dev.office.com/reference/add-ins/excel/range

+0

감사에서 가져온, 나는 그것으로 살펴 보겠습니다. 그것은 조금 다른 접근 방식이지만. –

+0

새로운 방법이 이전 방법보다 효과가 있는지 알려 주시면 해당 시점에 적절한 버그를 신고 할 수 있습니다. –