Сделал другой вариант. Чтобы читать локальные файлы надо скрипт класть в раздел <head>
<head>
<script src=./main.js></script>
</head>
<body>
<input id="read_table" type="file" value='' style="padding: 0px; size: 120px" />
</body>
а потроха скрипта упаковать в функцию
document.addEventListener('DOMContentLoaded', function () {
var fReader = new FileReader();
var readtable = document.getElementById('read_table');
var filename, data, headers;
readtable.onchange = function (e) {
var file = this.files[0];
//console.log(file);
filename = file.name;
fReader.readAsText(file);
}
fReader.onload = function (e) {
var text = e.target.result;
...
}
})
работающий пример с такой упаковкой
https://github.com/gfmoore/BackFitCl...ileanalyser.js
В этом примере разборка бинарного файла, но логика та же
Другой пример здесь
https://www.js-tutorials.com/javascr...ascript-html5/
http://js-tutorials.com/demos/read_csv_javascript_demo/
В этом примере много мусора, но главный принцип такой же - упаковать скрипт в функцию. (Интересно, в описании про мусор пишут а про упаковку скрипта в функцию нет. Когда весь Интернет просто криком исходит - как в простом js и html читать локальные файлы)
Остались бантики - стили, форматирование таблицы, прикручивание кнопки для вызова поля с графиками и картой
Интересно, что структурно решение выглядит так же как на питоне
Логика везде одинаковая - здравый смысл - а синтаксис может быть какой угодно