删除CSV文件中字符串周围的双引号

时间:2016-06-30 13:58:59

标签: csv angular-ui-grid double-quotes

我使用Angular UI-grid以表格形式显示数据,我还添加了一个功能来导出CSV文件中的可见数据但我的问题是在导出文件中所有字符串都用双引号括起来。

有谁能告诉我如何删除那些不必要的双引号? 任何帮助表示赞赏

1 个答案:

答案 0 :(得分:0)

您所引用的行为来自uiGridExporterService服务中的函数formatFieldAsCsv(字段)。没有API可以让您通过设置更改此内容。

然而,我们可以使用decorator覆盖此默认行为,而无需修改ui-grid模块本身。

我已经在working plunker中证明了这一点。

在下面的代码段中,我指定了限定符来替换最初使用的引用。有了这个,您可以保留原样并且根本没有限定符,或者您可以将它的值更改为您喜欢的任何值,这将成为每个字段的前缀/后缀。

app.config(['$provide', function ($provide) {

    $provide.decorator('uiGridExporterService', [
        '$delegate',
        function myServiceDecorator($delegate) {
            $delegate.formatFieldAsCsv = formatFieldAsCsv;
            return $delegate;
        }
    ]);

    function formatFieldAsCsv(field) {

        var qualifier = '';

        if (field.value === null) { // we want to catch anything null-ish, hence just == not ===
            return '';
        }
        if (typeof(field.value) === 'number') {
            return field.value;
        }
        if (typeof(field.value) === 'boolean') {
            return (field.value ? 'TRUE' : 'FALSE');
        }
        if (typeof(field.value) === 'string') {
            return qualifier + field.value.replace(/"/g, '""') + qualifier;
        }

        return JSON.stringify(field.value);
    }

}]);

http://plnkr.co/edit/8qskcFt7EHSlTQFo4ZUG?p=preview