2016-06-30 7 views
0

Я использую Angular UI-grid для отображения данных в табличной форме, а также добавил функциональность для экспорта видимых данных в CSV-файл, но моя проблема заключается в том, что в экспортированном файле вся строка заключаются в двойные кавычки.Удалить Double Quotes вокруг строки в CSV-файле

Может ли кто-нибудь сказать мне, как удалить ненужные двойные кавычки? Любая помощь с благодарностью

ответ

0

Поведение, к которому вы обращаетесь, относится к функции formatFieldAsCsv (поле) в службе uiGridExporterService. Нет 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