Size: a a a

JavaScript — русскоговорящее сообщество

2020 July 23

A

Aleksandr in JavaScript — русскоговорящее сообщество
function(file) {
   let reader = new FileReader();

   reader.onload = function(e) {
     let data = e.target.result;
     let workbook = XLSX.read(data, {
       type: 'binary'
     });

     workbook.SheetNames.forEach(function(sheetName) {
       // Here is your object
       var XL_row_object = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[sheetName]);
       var json_object = JSON.stringify(XL_row_object);
       console.log(json_object);

     })

   };

   reader.onerror = function(ex) {
     console.log(ex);
   };

   reader.readAsBinaryString(file);
 };
источник

A

Aleksandr in JavaScript — русскоговорящее сообщество
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.8.0/jszip.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.8.0/xlsx.js"></script>
вот эти зависимости торчат, но проект очень старый
источник

🧨

🧨 ethorz in JavaScript — русскоговорящее сообщество
источник

🧨

🧨 ethorz in JavaScript — русскоговорящее сообщество
видимо не единичный случай
источник

🧨

🧨 ethorz in JavaScript — русскоговорящее сообщество
попробую blob выставить
источник

🧨

🧨 ethorz in JavaScript — русскоговорящее сообщество
да, проблема решилась опцией responseType: 'blob'
источник

A

Aleksandr in JavaScript — русскоговорящее сообщество
логично
источник

🧨

🧨 ethorz in JavaScript — русскоговорящее сообщество
Aleksandr
логично
не очень)
источник

A

Aleksandr in JavaScript — русскоговорящее сообщество
🧨 ethorz
не очень)
почему? браузер не знает что такое exel, пробует его перекодировать, не получается, слетает кодировка, там, если не ошибаюсь какой то из первых битов отвечает за кодировку, а блоб он не изменяет данные, поэтому все остается как есть
источник

🧨

🧨 ethorz in JavaScript — русскоговорящее сообщество
Aleksandr
почему? браузер не знает что такое exel, пробует его перекодировать, не получается, слетает кодировка, там, если не ошибаюсь какой то из первых битов отвечает за кодировку, а блоб он не изменяет данные, поэтому все остается как есть
но ведь при new Blob можно указать тип - mime-type файла
источник

A

Aleksandr in JavaScript — русскоговорящее сообщество
🧨 ethorz
но ведь при new Blob можно указать тип - mime-type файла
можно, но блоб, как таковой, это незименяемы двоичные данные, т.е. он читается как последовательность нулей и единиц
источник

🧨

🧨 ethorz in JavaScript — русскоговорящее сообщество
хотя возможно да, именно кодировка именно на этапе выдачи ответа слетала
источник

A

Aleksandr in JavaScript — русскоговорящее сообщество
скорее всего, что логично, не валиться же бразуеру каждый раз, когда ты в него неверный формат загружаешься, обработал как есть и пошел дальше, но это догадки, я в движок не лазил
источник

ЕБ

Евгений Баранников... in JavaScript — русскоговорящее сообщество
💧KiKi🌟
Напиши как узнаешь, интересно узнать
сдаётся мне что это просто бессмысленная дичь. Если имеем import a from 'b' то выражение console.log(a.constructor === Object) даст TRUE . Т.е. a.constructor(x) просто возвращает ссылку на x, т.е это тоже что вызвать Object(x). Вызов Object(x) возвращает ссылку на x и никак на него не воздействует вроде как. В чем смысл такой конструкции, не понятно
источник

💧

💧KiKi🌟 in JavaScript — русскоговорящее сообщество
а может это просто создание конструктора без его объявления?
источник

ЕБ

Евгений Баранников... in JavaScript — русскоговорящее сообщество
💧KiKi🌟
а может это просто создание конструктора без его объявления?
в смысле?
источник

💧

💧KiKi🌟 in JavaScript — русскоговорящее сообщество
Ну в  смысле просто обратились к конструкторв и вставили туда {...} и на выходе получили нужный объект
источник

💧

💧KiKi🌟 in JavaScript — русскоговорящее сообщество
Что бы не создавать sddf class fksdfj () {this...}
источник

💧

💧KiKi🌟 in JavaScript — русскоговорящее сообщество
не знаю можно ли и так
источник

ЕБ

Евгений Баранников... in JavaScript — русскоговорящее сообщество
💧KiKi🌟
Ну в  смысле просто обратились к конструкторв и вставили туда {...} и на выходе получили нужный объект
так вызов a.constructor(x) возвращает ссылку на тот же x - в чем смысл
источник