有一个表格,里面的数据因为业务需要,加入了fn处理比如其中一个数字12345,加入 <Renderer Fn="Money" /> 后,得到 12,345.00但是问题来了,显示的时候都没问题,导出到EXCEL后依然还是去处理前的数值我是这样得到数据的// 获取当前页所有数据记录
            var records = Ext.encode(
                gridPanel1.getRowsValues(
                {
                    selectedOnly: false,
                    visibleOnly: false,
                    dirtyOnly: false,
                    currentPageOnly: true
                }));
doExport('导出数据', format, records, gridPanel1.getColumnModel(), null,ExportVal('导出数据',1));
也就是说虽然显示的数值变了,但records中的数值,还是原始数值,有没有在这方面有过经验的同志给出个主意

解决方案 »

  1.   

    你的这个数字12345,在取出数据库的时候就格式化成12,345.00,然后再填充到records。不要用renderer这种后期方式~
      

  2.   

    1. renderer没有改变record中的数据啊,所以你导出到excel中肯定还是原始的数据,没有renderer的格式。
    如果数据量不大,而且有renderer的列不多的话,可以试试在导出前复制一个record, 遍历gridPanel的行,把每一行的text赋值到record的相应字段,然后再做导出。只是一种想法,可以试试可不可行。2.直接自己处理数据,不用renderer,在后台将数据处理成想要的格式,在进行绑定,或者在前台遍历record处理也OK,这种肯定是没有问题的。