Office js 适用于多种语言受众的Excel插件格式

Office js 适用于多种语言受众的Excel插件格式,office-js,excel-addins,Office Js,Excel Addins,使用绑定或当前选择将数据写入excel时,需要根据内容语言使用正确的数字格式 因此,如果内容语言为英语,则以下代码将失败 常量选项={ 单元格格式:[{cells:{row:1},格式:{numberFormat:'#.###,00'}] }; Office.context.document.setSelectedDataAsync(tableData,选项); 例如,一个丑陋的解决方案就是 常量选项={ 单元格格式:[{ 单元格:{列:3}, 格式:{ numberFormat:Offi

使用绑定或当前选择将数据写入excel时,需要根据内容语言使用正确的数字格式

因此,如果内容语言为英语,则以下代码将失败


常量选项={
单元格格式:[{cells:{row:1},格式:{numberFormat:'#.###,00'}]
};
Office.context.document.setSelectedDataAsync(tableData,选项);

例如,一个丑陋的解决方案就是


常量选项={
单元格格式:[{
单元格:{列:3},
格式:{
numberFormat:Office.context.contentLanguage.startsWith('de')?
'#.###,00': '#,###.00' }
}];
};
Office.context.document.setSelectedDataAsync(tableData,选项);


是否没有类似于
货币
数字
或类似用户知道表单excel的UI的抽象格式?

我不是100%确定,但如果您尝试使用“新”(Office 2016)一波API会怎么样。比如:

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

示例取自

谢谢,我会研究一下。尽管这是一个有点不同的方法。一定要让我们知道新方法是否比旧方法更好,这样我们就可以在那个时候提交一个合适的bug。