2010-03-16 111 views
3

我正在爲我公司開發一個Web應用程序,該程序允許我們執行一些圖像標記工作,並且希望能夠以CSV文件的形式生成結果。我可以通過將CSV數據轉儲到頁面上的div或其他東西來輕鬆完成此操作,並讓用戶將其複製出來。我寧願讓他們點擊一個生成按鈕並下載CSV文件,就好像他們點擊了一個鏈接到結果,所以他們可以更方便地將文件保存在方便的地方。動態生成一個JavaScript文件?

有沒有可能用javascript來模擬這種事情?我基本上想動態生成文件,然後讓他們下載它,客戶端。

回答

8

您可以使用媒體類型text/csv創建data: URI,並在現代瀏覽器中創建指向它的鏈接或直接導航到它。

它不會在IE中工作。 (在有限的情況下,IE8可以支持data:,這對你沒有幫助。)至少對於那個瀏覽器來說,你需要回退到剪切粘貼或服務器後端。

+0

呸。擊敗我14秒;) – Quentin 2010-03-16 15:49:45

+0

嘿。現在我們甚至是! – bobince 2010-03-16 15:50:31

+1

+1。不知道這件事。 – z5h 2010-03-16 15:51:47

0

我寫了一個輕量級的客戶端CSV生成器庫,可能會派上用場。檢查出來的http://atornblad.se/github/(向下滾動到標題說客戶端CSV文件生成

它需要一個正常運作的FileSaver實施處理呼叫window.saveAs()。退房禮格雷對http://eligrey.com/blog/post/saving-generated-files-on-the-client-side

當到位的解決方案,您只需生成並保存在這樣飛CSV文件:

var propertyOrder = ["name", "age", "height"]; 

var csv = new Csv(propertyOrder); 

csv.add({ name : "Anders", 
      age : 38, 
      height : "178cm" }); 

csv.add({ name : "John Doe", 
      age : 50, 
      height : "184cm" }); 

csv.saveAs("people.csv");