近期恰好遇到需要在网站上提供输出 .csv 文件的功能,真是让人头疼,由于内含 utf8 中文字符的关系,使得输出后的 .csv 文件,通过 excel 开启后会出现乱码。
为了解决此问题,于是我曾尝试使用 python 内建的 csv module, 高阶版的 unicodecsv, 手动 补上 BOM 的信息, 但是通过 excel 2011 for mac 开启后,中文仍然都是乱码 ,狂晕!
仔细想想,既然假定用户会用 excel 开启文件,那也不用强求一定要输出 csv, 直接输出 普通的excel 文件即可,于是最后找到了 tablib ,神速的短短几行源程序便能完成工作。
下面是代码演示:
- # 安装
- sudo pip install tablib
- # 使用
- headers = (u'中文', u'没在怕的')
- data = [
- ('John', 'Adams'),
- ('George', 'Washington')
- ]
- data = tablib.Dataset(*data, headers=headers)
- # 转换成各种格式的字符串
- data.csv
- data.xls
- data.xlsx
- data.yaml
- data.tsv
- data.json
- …
各位大侠还有更好的方法么?
本文来源 我爱IT技术网 http://www.52ij.com/jishu/python/12449.html 转载请保留链接。