web2py grid 的csv导出优化excel中文乱码和表头label

web2py的grid的csv导出存在2个问题:

1、excel直接打开中文是乱码,这是因为相关csv文件没有BOM_UTF8声明;

2、导出文件的表头是db中的数据表的英文字段名,不是很友好,要是导出的表头是label设置的中文名字或者language中的翻译名才OK

优化方法:

打开web2py自带gluon文件下的objects.py,找到export_to_csv_file 函数,里面有段:

if write_colnames:
   writer.writerow(unquote_colnames(colnames))

改为:

import codecs
ofile.write(codecs.BOM_UTF8)
if write_colnames:
    new_colnames= [name.replace('"','') for name in colnames ]
    labels = []
    for col in new_colnames:
        (t, f) = col.split('.')
        labels.append(str(self.db[t][f].label))
    writer.writerow(unquote_colnames(labels))
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值