删除 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);
}
}]);
我正在使用 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);
}
}]);