(本文档仅供参考)
问题描述
修改某字段数据格式,在数据集中预览数据,数据格式切换生效;将同样的字段在电子表格中展示,数据格式不生效,展示的是原始数据。
解决方案
电子表格内,选中应用了数据格式的字段对应的单元格,双击或者点击Smartbi工具栏上的【属性】按钮;选择【其他】→勾选上使用显示值,数据格式即可生效。
如果需要额外对数据进行汇总求和,则要提前在数据集中进行汇总。
若只是希望设置保留小数位,如保留两位小数,则可以在电子表格对单元格右键设置单元格格式
注:上述设置后,会出现数据无法完全居右的情况,产生原因:这个是第三方插件为了迎合excel本身的效果做的,对一个数字来说,如果设置了单元格格式为数值类型和没有设置为数值类型的,在excel中可以看到右侧距离右边框是有差异的,而第三方插件为了体现这种差异在生成web时故意加了一个空格作为显示值。
如需要彻底居右,可参考以下宏代码对空格进行处理。
//类型:ServerSide 对象:spreadsheetReport 事件:onBeforeOutput function main(spreadsheetReport) { var type = spreadsheetReport.outputType; if (type == "refresh") { var workbook = spreadsheetReport.workbook; //获取电子表格工作簿 var worksheets = workbook.worksheets; for (var i = 0; i < worksheets.count; i++) { var worksheet = worksheets.get(i); //sheet1 var cells = worksheet.cells; var maxDisplayRange = cells.maxDisplayRange; //表格最大范围 //对表格中的值进行循环判断 for (var x = 0; x < maxDisplayRange.rowCount; x++) { for (var y = 0; y < maxDisplayRange.columnCount; y++) { var cell = cells.get(x, y); if (cell.getValue() != null && cell.getStringValue().contains(" ")) { cell.value = cell.getStringValue().trim(); } } } } } }
最终效果: