Неверный формат данных в экспортированном Excel - PullRequest
0 голосов
/ 26 апреля 2019

Я прошу помощи здесь по поводу проблемы с SheetJS js-xlsx , что в последнее время, похоже, не поддерживается активно .Я уже поставил вопрос .

Дело в том, что я хочу использовать неанглийский формат данных (даты и цифры).Когда я экспортирую в файл XLSX, библиотека не обрабатывается правильно, и представленная информация в экспортированном Excel неверна.

Ответы [ 2 ]

2 голосов
/ 11 мая 2019

Мое решение будет другим.

Создание собственного формата Excel в коде. Прилагаемый пример, который, я думаю, вы сможете улучшить.

Это простая перезапись вашей exportToXls функции:

    function exportToXls() {
        var wb = XLSX.utils.book_new();
        var ws = XLSX.utils.json_to_sheet(vm.list, {header: ["date", "number"], cellDates: true});

        // Headers
        ws['A1'].v='Fecha';
        ws['B1'].v='N.º';

        // Data
        for(var i = 0; i < vm.list.length; ++i) {
            ws[`A${i+2}`].z = 'd/m/yy';
        }
        XLSX.utils.book_append_sheet(wb, ws, 'Somename');
        XLSX.writeFile( wb, 'Table.xlsx' );
    }

$$hashkey из-за Angular (использует его для поиска изменений). Если вы будете использовать отдельный метод или переменную для ввода данных, как показано в примере ниже, $$hashkey не будет присутствовать.

Вот оно, в действии Codepen .

0 голосов
/ 09 мая 2019

У меня нет всей информации, поэтому я делаю слепой удар в темноте x2:

1) Если дата возвращается в виде строки, вы можете попытаться разобрать ее с помощью таких элементов, как left, right, mid, len и т. Д., А затем перестроить ее с помощью функции Date.

2) Можно изменить базовый язык Excel, что приведет к изменению используемого формата даты. Вы можете перейти на версию Excel, где все работает, обработать там, а затем преобразовать обратно в исходный язык, который преобразует файл.

Опять же, из-за недостатка информации и недостатка деловой потребности в этом, я не могу дать лучший ответ

...