2017-04-05 180 views
0

這是我的問題:在Javascript中簡單的CSV解析

我想解析JavaScript中的本地CSV文件。該文件是這樣的:

Year,Promo,Surname,Name,Mail 
2005/2006,0,XXXX,XXXXX,[email protected] 
(...) 
2006/2007,1,XXXX,XXXXX,[email protected] 
(...) 
2007/2008,2,XXXX,XXXXX,[email protected] 
etc. 

我試着用幾個librairies解析它(PapaParse.js,jQuery的CSV,d3.js ...),但:

  • 要麼解析失敗(我的數組是空的)

  • 或者我得到一個的XMLHttpRequest無法負荷 - 跨起源請求只支持協議方案:HTTP,數據,鍍鉻,鍍鉻的擴展,HTTPS,鉻擴展資源錯誤,因爲我的文件存儲在本地。

有沒有簡單的解決方案來解析JavaScript文件中的CSV文件,以便訪問數據?我在論壇上查找了數百篇帖子,但是我無法使其發揮作用。

非常感謝(對不起,我在JS方面很新)。

湯姆。

+0

我認爲你一次有多個問題。你從哪裏得到你的文件?也許你應該開始使用本地文件,然後進一步移動。 – Marcel

+0

你在使用服務器嗎? –

+0

@Marcel這是一個本地文件,OP說*「我想解析一個本地的CSV文件」*。 –

回答

0

這個答案是規範的,因爲它解決了可能由問題描述的任何人的問題。這些答案中只有第一個是針對OP的,儘管就最後一條評論而言,我在底部添加的編輯部分也專門針對OP。

,如果你這樣做了小的,本地的應用程序,你可能可以做的這兩件事之一:

  1. 推出與CORS瀏覽器中禁用:

Chrome.exe --disable-web-security

在源文件中也有firefox的說明

src

  • 運行您的文件一個微型服務器:
  • 如果你有安裝了Python(大多數Mac和Linux用戶做),你就可以開始一個快速的本地網絡服務器進行測試。使用命令提示符,導航到該目錄中有你的HTML文件,並運行以下命令:

    python -m SimpleHTTPServer

    你的文件現在應該從http://localhost:8000/訪問,可能有工作時,文件的一個很好的機會:///纔不是。https://www.npmjs.com/package/local-web-server

    尋找一個回答這個問題的典型用戶可能使用的節點:

    src

    更好的解決方案,如果您遇到與蟒蛇服務器CORS問題,local-web-servernode可能是:

    'use strict'; 
    
    var fs = require('fs'); 
    
    var readFilePromise = function(file) { 
        return new Promise(function(ok, notOk) { 
        fs.readFile(file, function(err, data) { 
         if (err) { 
          notOk(err) 
         } else { 
          ok(data) 
         } 
        }) 
        }) 
    } 
    
    readFilePromise('/etc/passwd').then(function(data) { 
        // do something with the data... 
    }) 
    

    src

    編輯:設置爲一個簡單的應用程序:

    使服務器在rc.d或任何地方serivce。請按照以下指南進行操作:https://blog.terminal.com/using-daemon-to-daemonize-your-programs/

    請勿使服務器成爲活動的本地服務!相反,創建一個腳本來啓動你的應用程序,並且只能從該腳本啓動守護程序。在服務的初始化腳本中,每隔幾分鐘寫一次檢查以查找應用程序的PID或某些內容,並在應用程序不再運行時自動關閉。