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

Remove Double Quotes around the String in CSV file

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

谁能告诉我如何删除那些不必要的双引号? 感谢任何帮助

您所指的行为来自 uiGridExporterService 服务中的函数 formatFieldAsCsv(field)。没有 API 允许您通过设置更改此设置。

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

我已经在 working plunker 中演示了这一点。

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

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