[JavaScript] 將 CSV 檔案轉換成 JSON 資料

我們在拿到客戶提供的資料的時候常常會拿到 excel 檔案(這算幸福的)
至少我們可以簡單的利用一些軟體轉成 csv丟進資料庫裡處理。如果搭配個後端 API 基本上資料都不會是太大的問題可以做成 JSON 供 JavaScript 使用,但是如果在沒有後端或是資料庫的環境中呢?


首先我們先把 csv 檔案放到 server上 利用 $.get() 取得內容,接著將內容String 丟進我們待會會用到的 csvJSON 外掛 function 中。就會取得 JSON
但是這個時候的 JSON 還是 String 的形態所以還無法被解析,我們再加個 JSON.parse() 就可以拿到整個 JSON 物件摟!


function 來源:
https://gist.github.com/iwek/7154578

PHPExcel 用PHP匯出成EXCEL

很多的客戶給他查詢後台還不夠,它們還想要excel的檔案
雖然到現在我還是不懂為什麼,不過既然都有這樣的需求了那我們就來做吧

PHPExcel 就是一個這樣的套件,他支援excel5,excel2003(xls),excel2007(xlsx),csv等等格式

先講一下動作的原理吧
1.載入元件庫
include "Classes/PHPExcel.php"; 
require_once "Classes/PHPExcel.php"; 
require_once "Classes/PHPExcel/IOFactory.php";

$objPHPExcel = new PHPExcel(); 
$objPHPExcel->setActiveSheetIndex(0);

2.設定每一個值的座標
$objPHPExcel->getActiveSheet()->setCellValue('A1','中文'); 
$objPHPExcel->getActiveSheet()->setCellValue('B2','許'); 
$objPHPExcel->getActiveSheet()->setCellValue('C3','test3'); 
$objPHPExcel->getActiveSheet()->setCellValue('D3','test4');

3.存檔
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); 
$objWriter->save('test.xlsx');

上面的範例是最簡單的做法,PHPExcel有更多的設定參數可以使用可以讓你做出來的Excel變得很複雜和多樣化
不過我不打算要讓事情變得這麼複雜所以這樣就好啦


附記:
要使用這個套件php環境必須要有

  • php_zip
  • php_xml
  • php_xmlrpc

php_xml和php_xmlrpc只要用yum install php-xml* 就可以安裝完成


參考文章:

留言

陳信成寫道…
嗯 真的 完全不懂這需求

大廠商需要匯出作資料就算了

小廠商要這功能完全沒有意義,用後台查詢就已經很好了
周駿憲寫道…
通常會有這樣的需求是給客戶做業績報告用的
雖然覺得很雞肋,但是如果是接到公關公司的案子他們通常都滿愛這個功能的
因為可以快速做出報告

這個網誌中的熱門文章

利用 google MAP API 取得座標之間的距離

JavaScript 將 Array 和 Object 轉成 JSON

讓 PHP 接收 post 的 json 資料