1. <!doctype html>
    2. <html>
    3. <head>
    4. <title>读取并解析csv</title>
    5. </head>
    6. <body>
    7. <div>
    8. 无法根据绝对路径直接读取文件吗?一定要通过input吗?
    9. 读取文本文件:
    10. <input type="file" id="file1" accept="*" />
    11. </div>
    12. <div>
    13. 显示进度:
    14. <progress id="pro" value="0"></progress>
    15. </div>
    16. <div id="result"></div>
    17. <script type="text/javascript">
    18. var file1 = document.getElementById('file1');
    19. file1.onchange = function () {
    20. var file = file1.files[0];
    21. //读取为二进制
    22. var reader = new FileReader();
    23. reader.readAsText(file,'utf-8');
    24. //显示进度
    25. var pro = document.getElementById('pro');
    26. pro.max = file.size;
    27. pro.value = 0;
    28. reader.onprogress = function (e) {
    29. pro.value = e.loaded;
    30. }
    31. reader.onload = function () {
    32. var str = reader.result;
    33. var rows = str.split('\n');
    34. /*var clients = [];
    35. for(var i =0; i<rows.length; i++){
    36. var row =rows[i].split(',') ;
    37. var client = {
    38. id:row[0],
    39. company:row[1],
    40. address:row[2],
    41. name:row[3],
    42. phone:row[4],
    43. coord:{x:row[5],y:row[6]}
    44. };
    45. clients.push(client);
    46. }
    47. //由对象转为JSON字符串
    48. console.log(JSON.stringify(clients));
    49. document.getElementById('result').innerHTML = JSON.stringify(clients);
    50. */
    51. console.log(rows);
    52. document.getElementById('result').innerHTML = rows;
    53. }
    54. }
    55. </script>
    56. </body>
    57. </html>