1. 程式人生 > >coffeescript實現nodejs前端csv檔案下載

coffeescript實現nodejs前端csv檔案下載

[There's a nicer way.]

程式碼段如下:

# alllw the browser to create a CSV file and download it.
# _arrays = [[..], [..],.., [..]]
# ps: "\uFEFF" to solve the problem of wrong display of chinese in excel

module.exports =
  csv: (_filename, _arrays)->
    # store data into a string
    _str = ''
    for _arr in _arrays
      _line = ''
      for _index in _arr
        _line += ',' if _line isnt ''
        _line += _index
      _str += _line + '\r\n'

    # create the click to download csv file
    _a = $('<a class="hide">點選下載</a>')
    _a.attr "download", "#{_filename}.csv"
    blob = new Blob ["\uFEFF" + _str], {'type':'application\/octet-stream'}
    _a.attr "href", window.URL.createObjectURL(blob)
    $("body").append _a
    _a[0].click()
    setTimeout ->
      _a.remove()
    , 1000

ps

(1)arrays為傳入的引數,其中包含多個array,每個代表csv的一行資料,第一行為標題行

(2)整個過程分為兩部分,一是將arrays中的資料傳入到_str中,變成一個字串;第二個部分是新增一個下載按鈕並觸發,下載相應檔案,Blob(binary large object)為一種二進位制大物件型別

(3)\uFEFF解決了excel開啟下載檔案中中文亂碼的問題

相關推薦

coffeescript實現nodejs前端csv檔案下載

[There's a nicer way.] 程式碼段如下: # alllw the browser to create a CSV file and download it. # _arrays = [[..], [..],.., [..]] # ps: "\uFEFF

js製作CSV檔案下載功能時,由於值中含有json字串導致匯出格式錯誤解決方法

問題描述: 由於做的是真分頁,所以下載的時候不用在查詢資料庫,因而直接用的是js製作CSV檔案下載功能,但是由於值中含有json字串導致匯出格式錯誤。格式錯誤體現在json字串被拆分,佔用了多個單元格。 解決方法: 根據CSV檔案識別單元格的方式,用雙引號括起來的內容被

java實現word、pdf檔案下載功能

 在SpringMVC的開發過程中,有時需要實現文件的下載功能。文件的下載功能涉及到了java IO流操作的基礎知識,下面本文詳細介紹java如何實現後臺文件下載功能。       首先根據文件在專案中的儲存路徑建立File物件,並獲取文件的名稱和字尾。判斷瀏覽器型別,防止

Java實現的SFTP(檔案下載詳解篇)

上一篇講述了使用JSch實現檔案上傳的功能,這一篇主要講述一下JSch實現檔案下載的功能。並介紹一些SFTP的輔助方法,如cd,ls等。 同樣,JSch的檔案下載也支援三種傳輸模式:OVERWRITE, RESUME和APPEND,請參考上篇隨筆:JSch - Ja

js實現伺服器端pdf檔案下載,支援谷歌

1.txt文字檔案實現下載而不是在瀏覽器中開啟 對於txt檔案發現下面的方法並不適用,ie瀏覽器會自動開啟,通過查詢發現通過《download.js》下載download.js,頁面引用此js後,直接呼叫 download("檔案路徑","檔名稱","text/plain") 就可以直接

csv檔案下載出現亂碼

最近有個問題,下載csv檔案下來,用excel開啟的時候,出現亂碼,原因是編碼是gbk,用下文所說的用utf-8編碼,也不行,不知道是為什麼,可能是因為我的office設定主要語言是簡體中文的原因。用 OutputStreamWriter fos = new OutputS

多種方法爬取貓眼電影Top100排行榜,儲存到csv檔案,下載封面圖

參考連結:https://blog.csdn.net/BF02jgtRS00XKtCx/article/details/83663400 因貓眼網站有些更新,參考連結中的部分程式碼執行報錯,特修改一下   #!/usr/bin/env python # -*- coding: utf-8

ubuntu實現百度雲檔案下載

目的:window10下獲取百度網盤真實地址在ubuntu下可以不安裝百度網盤就可以下載 第一步、 安裝指令碼工具:Tampermonkey 外掛。支援 Chrome 、 Firefox、Safari、Microsoft Edge、Opera 等常見瀏覽器。 Tampermonkey

java實現批量匯入.csv檔案到mysql資料庫

這篇博文是在參加CCF時匯入.csv檔案時自己總結的,雖然NavicatForMysql可以匯入.csv檔案,可是當我匯入的時候不知道是檔案太大還是什麼原因,總是會出現失敗。然後就用java寫了一個批量匯入資料的類去匯入該.csv檔案,這裡也沒有考慮程式碼的結構,只是為了快

Feign實現微服務間檔案下載

在使用Feign做服務間呼叫的時候,當下載大的檔案會出現堆疊溢位的情況。另外,檔案管理服務(服務提供者)檔案下載介面無返回值,是通過HttpServletRespoonse傳輸的流資料來響應,那麼服務消費者該如何接受下載的資料呢? 一. 示例介紹

在Java中使用多執行緒結合斷點續傳實現一個簡單的檔案下載

這篇部落格介紹在android中使用多執行緒和斷點續傳實現一個簡單的檔案下載器 第一步:啟動Tomcat伺服器,將需要下載的檔案部署到Tomcat伺服器上 第二步:使用eclipse建立一個Java工程,並且在工程中新增下面的程式碼 package com.fyt.mul

前端實現檔案下載和拖拽上傳

蘇格團隊 作者:WDZ 交流QQ群:855833773 歡迎加入我們的團隊,微信聯絡方式:foreverpx_cjl 筆者在業務中碰到了需要下載示例和拖拽上傳並實現進度條的功能,針對過程中遇到的問題,筆者進行了相應的總結。 需求 頁面中增加下載示例按鈕

PHP實現CSV檔案的建立並且直接下載

<?php function createcsv($fileName,$csv_body) { // 頭部標題 $csv_header = array('sku'); $header = implode(',', $csv_header) . PHP_EOL;

Servlet實現匯出下載csv檔案

工作上遇到的場景,需要將客戶列表資料匯出成csv檔案。測試了一個最簡單版本,記錄一下。 訂單實體類: package entity; /** * 訂單資訊實體 * Created by dylan-pc on 2017/8/17. */ public class

js實現使用檔案下載csv檔案

1. 理解Blob物件 在Blob物件出現之前,在javascript中一直沒有比較好的方式處理二進位制檔案,自從有了Blob了,我們就可以使用它操作二進位制資料了。現在我們開始來理解下Bolb物件及它的檔案流下載應用場景。 1. 建立Blob物件方式如下: var blob = new Blob(

前端通過Blob實現檔案下載

最近遇到一個需求,需要將頁面中的配置資訊下載下來供使用者方便使用,以前這個場景的需求有時候會放到後端處理,然後給返回一個下載連結。其實並不需要這麼麻煩,這樣既增大了伺服器的負載,也讓使用者產生了沒有必要的網路請求,現在前端也是可以直接通過Blob物件進行前端檔案下載了,下面簡單記錄下相關實現 Blob物件

iframe標籤實現form表單提交下載檔案

一、表單提交的程式碼常規寫法 <iframe name="testIframeName" style="display:none;"></iframe> <form target="testIframeName" method="post" acti

Spring 實現檔案下載功能

方式1: public void download(HttpServletResponse response,@RequestParam(value="params") String params) throws IOException, DocumentException{ response

JS實現點選按鈕,下載檔案

今天在實現下載功能時,後臺介面測試完成後,前臺在呼叫時發現,因為系統是基於token的,又不想把token顯示在url中,後來找到了一篇文章,講解了如何通過構造form表單提交請求後端介面,實現檔案下載,原文地址:https://www.cnblogs.com/hamsterPP/p/6763458.html

JQuery 實現檔案下載

GET方式 window.location.href = url; POST方式 var url = "下載介面地址"; // 構造隱藏的form表單 var $form = $("<form id='download' class='hidden' method='po