caravel 导出csv文件乱码问题

原创 2016年08月30日 13:54:32

背景:

项目 : https://github.com/airbnb/caravel

版本 :0.10.0

现象 : 导出csv 含有中文时候乱码:

原有导出代码:采用flask中封装的Response函数

view.py

        elif request.args.get("csv") == "true":
            payload = obj.get_csv()
            return Response(
                payload,
                status=200,
                headers=generate_download_headers("csv"),
                mimetype="application/csv")
def generate_download_headers(extension):
    filename = datetime.now().strftime("%Y%m%d_%H%M%S")
    content_disp = "attachment; filename={}.{}".format(filename, extension)
    headers = {
        "Content-Disposition": content_disp,
    }
    return headers


怎么改都不好用之后采取xlwt

https://pypi.python.org/pypi/xlwt

        elif request.args.get("csv") == "true":

            payload = obj.get_csv()

            filename=generate_download(payload,'xls')

            return send_from_directory(config.get("DOWNLOAD_FOLDER"),filename, as_attachment=True)
</pre><pre code_snippet_id="1857667" snippet_file_name="blog_20160830_5_4701559" name="code" class="html">def generate_download(payload,extension):
    filetime = datetime.now().strftime("%Y%m%d_%H%M%S")

    filename = "Export_"+filetime+"."+extension

    workbook = xlwt.Workbook(encoding = 'utf-8')

    worksheet = workbook.add_sheet('钱包BI下载数据sheet1')

    logging.info(payload)

    data=payload.split('\n')

    for x,value in enumerate(data):

        cells = value.split(',')

        for y,cell in enumerate(cells):

             worksheet.write(x, y, label = cell)

    workbook.save(config.get("DOWNLOAD_FOLDER")+filename)

    return filename


变成下载xls文件,来解决乱码~


如果你恰巧看到这儿,知道怎么修改原有的方式解决乱码问题,欢迎交流~


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

解决unix(ubuntu)平台下,导出csv文件的乱码问题

项目中用到了csv导出的功能,但是在本机

在Mac系统下Excel转csv文件中文乱码问题解决

导出方式 问题的原因是编码方式不同造成的,解决问题需要借助一个工具 Numbers, 下载地址: http://soft.macx.cn/5144.htm 安装完成后用Numbers打开E...

excel打开csv文件乱码问题

[故障原因分析]此种情况一般是导出的文件编码的问题。在简体中文环境下,EXCEL打开的CSV文件默认是ANSI编码,如果CSV文件的编码方式为utf-8、Unicode等编码可能就会出现文件乱码的情况...

使用Python3生成CSV文件遇到的问题(空行/乱码)

注意,本文是 Python3空行问题Python 3 中如果要防止空行,需要在open的时候加上 newline="" 这个参数,示例代码如下:# Python 2 with open('/pytho...

PHP导出CSV文件出现乱码的解决方法

在做项目时碰到使用外语的情况下,我们就会使用UTF-8编码。但是,在用PHP导出CSV文件时,如果写入的数据是使用UTF-8编码的日语、韩语之类的外文,就会出现乱码。 这个问题困扰我两天,主...

csv文件导出,excel打开乱码处理

原因如下有两种处理办法: 在做一个导出CSV文件的功能时发现导出的文件是乱码,上网查了下,发现原来是BOM(Byte Order Mark)的问题   BOM是UTF编码方案里用于标识编码的标准标...

Mantistbt系统导出excel为xml,以及csv 中文乱码问题解决

1,问题描述 我们部署了一个mantisbt BUG提交系统,在config_inc.php中配置语言为中文后,界面变成中文界面了,但是在查看问题栏目中,我们导出csv,会发现为乱码,而导出ex...
  • altand
  • altand
  • 2012-06-22 15:23
  • 2195

java页面导出csv格式乱码问题解决

问题描述:java页面导出的csv格式的表格,用excel打开有乱码,但是用记事本打开没有乱码能够正常显示。 问题代码:ServletActionContext.getResponse().rese...

JAVA以UTF-8导出CSV文件,用excel打开产生乱码的解决方法

先上一段代码(上好的代码,多年陈酿) OutputStreamWriter osw = new OutputStreamWriter(resp.getOutputStream(), "UTF-8");...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)