角型UIグリッドを使用して表形式でデータを表示していますが、CSVファイルで表示するデータをエクスポートする機能も追加しましたが、二重引用符で囲みます。CSVファイルの文字列の二重引用符を削除する
これらの不要な二重引用符を削除する方法を教えてもらえますか? 助けを借りていただきありがとうございます。
角型UIグリッドを使用して表形式でデータを表示していますが、CSVファイルで表示するデータをエクスポートする機能も追加しましたが、二重引用符で囲みます。CSVファイルの文字列の二重引用符を削除する
これらの不要な二重引用符を削除する方法を教えてもらえますか? 助けを借りていただきありがとうございます。
あなたが参照している動作は、uiGridExporterServiceサービス内のformatFieldAsCsv(field)関数から得られます。これを設定で変更できるAPIはありません。
しかし、私たちができることは、uy-gridモジュール自体を変更することなく、このデフォルト動作を変更するためにdecoratorを使用することです。
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);
}
}]);