1. 程式人生 > >Phalcon使用PHPExecl匯出匯入Execl檔案

Phalcon使用PHPExecl匯出匯入Execl檔案

Phalcon和PHPExecl簡介

Phalcon 是開源、全功能棧、使用 C 擴充套件編寫、針對高效能優化的 PHP 5 框架。 開發者不需要學習和使用 C 語言的功能, 因為所有的功能都以 PHP 類的方式暴露出來,可以直接使用。 Phalcon 也是鬆耦合的,可以根據專案的需要任意使用其他物件。Phalcon是一套實現MVC架構的高效能PHP應用程式框架。初始版本釋出於2012年11月,開放原始碼並基於BSD授權條款。與其他大部分的PHP框架不同,Phalcon是以擴充套件的方式以C語言所編寫,因此Phalcon的執行速度高過其他PHP框架,並且消耗更少的資源,根據官方的測試,Phalcon是目前世界上速度最快的PHP框架, 沒有之一。

PHPExcel 是用來操作Office Excel 文件的一個PHP類庫,它基於微軟的OpenXML標準和PHP語言。可以使用它來讀取、寫入不同格式的電子表格,如 Excel (BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsx, CSV, Libre/OpenOffice Calc .ods, Gnumeric, PDF, HTML等等。

安裝配置

首先下午PHPExecl 下載PHPExecl
然後解壓,主要包括PHPExecl.php和PHPExcel資料夾(含有操作Execl的各種類)
放到Phalcon的專案下,如下圖所示:
這裡寫圖片描述

確保在自動載入時載入了該類,如下圖所示:
這裡寫圖片描述

匯出Execl

   public function createexcelAction($ln_id, $ln_name)
    {
        $this->view->disable();
        $records = Lognodeitem::find("belong_ln_id=$ln_id");    //從資料庫裡獲取資料
        //新建execl
        $resultPHPExcel = new PHPExcel();
        //設定第一行
        $resultPHPExcel
->getActiveSheet()->setCellValue('A1', 'id'); $resultPHPExcel->getActiveSheet()->setCellValue('B1', 'belong_ln_id'); $resultPHPExcel->getActiveSheet()->setCellValue('J1', 'mail_obj'); $resultPHPExcel->getActiveSheet()->setCellValue('K1', 'owner'); $resultPHPExcel->getActiveSheet()->setCellValue('L1', 'status'); //設值 $i = 2; foreach ($records as $rule) { $resultPHPExcel->getActiveSheet()->setCellValue('A' . $i, $rule->id); $resultPHPExcel->getActiveSheet()->setCellValue('B' . $i, $rule->belong_ln_id); $resultPHPExcel->getActiveSheet()->setCellValue('C' . $i, $rule->conditions); $resultPHPExcel->getActiveSheet()->setCellValue('J' . $i, $rule->mail_obj); $resultPHPExcel->getActiveSheet()->setCellValue('K' . $i, $rule->owner); $resultPHPExcel->getActiveSheet()->setCellValue('L' . $i, $rule->status); $i++; } //設定匯出檔名 $outputFileName = $ln_name . '.xls'; //設定匯出引數 $xlsWriter = new PHPExcel_Writer_Excel5($resultPHPExcel); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header('Content-Disposition:inline;filename="' . $outputFileName . '"'); header("Content-Transfer-Encoding: binary"); // header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Pragma: no-cache"); $xlsWriter->save($outputFileName); echo file_get_contents($outputFileName); }

匯入Execl

 function uploadFile($file, $filetempname)
      {
            //自己設定的上傳檔案存放路徑
            $filePath = '/tmp/';
            $str = "";

            //注意設定時區
            $time = date("y-m-d-H-i-s");//當前上傳的時間
            //獲取上傳檔案的副檔名
            $extend = strrchr($file, '.');
            //上傳後的檔名
            $name = $time . $extend;
            $uploadfile = $filePath . $name;//上傳後的檔名地址
            //move_uploaded_file() 函式將上傳的檔案移動到新位置。若成功,則返回 true,否則返回 false。
            $result = move_uploaded_file($filetempname, $uploadfile);//假如上傳到當前目錄下
            if ($result) //如果上傳檔案成功,就執行匯入excel操作
            {
                $objReader = PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007 format
                $objPHPExcel = $objReader->load($uploadfile);
                $objWorksheet = $objPHPExcel->getActiveSheet();
                $highestRow = $objWorksheet->getHighestRow();
                //在匯入時,啟動行號為1,第1行為標題,第2行開始為資料
                if ($highestRow > 1) {
                    $highestColumn = $objWorksheet->getHighestColumn();
                    $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);//總列數
                    $data_res = [];
                    //注意下面以$row=2開始,在匯入時,啟動行號為1,第1行為標題,第2行開始為資料
                    for ($row = 2; $row <= $highestRow; $row++) {
                        $strs = array();
                        //注意highestColumnIndex的列數索引從0開始
                        for ($col = 0; $col < $highestColumnIndex; $col++) {
                            $strs[$col] = $objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
                        }
                        array_push($data_res, $strs);
                    }
                } else {
                    return json_encode(array('state' => 1, 'message' => '資料太少,無法匯入'));
                }
                unlink($uploadfile);   //刪除上傳的檔案
                return json_encode(array('state' => 0, 'message' => '成功獲得規則資料', 'data' => $data_res));
            } else {
                return json_encode(array('state' => 2, 'message' => '檔案上傳失敗'));
            }
        }

初學PHP沒多久,程式碼寫得不嚴謹,請大家包含!

相關推薦

Phalcon使用PHPExecl匯出匯入Execl檔案

Phalcon和PHPExecl簡介 Phalcon 是開源、全功能棧、使用 C 擴充套件編寫、針對高效能優化的 PHP 5 框架。 開發者不需要學習和使用 C 語言的功能, 因為所有的功能都以

python從SQLAlchemy中匯出匯入CSV檔案

讀寫CSV資料 讀csv檔案 將資料讀取為一個元祖的序列 import csv with open('stocks.csv') as f: f_csv = csv.reader(f) headers = next(f_csv) for row in f_c

mysql匯出匯入sql檔案方法(linux)

一、匯入匯出.sql檔案for Linux: 1、從mysql中匯出資料庫test: 在終端執行:mysqldump -h localhost -u root -p test > /home/chuzj/daochu.sql 其中localhost是伺服器名字 test是資料庫名字,其後可以直接跟

將table中選擇的資料匯出Execl檔案 JavaScript

<html>    <head>        <title>將table中選擇的資料匯出為Execl檔案 JavaScript</title>        <script language="javascript">...            

sql語句匯入execl檔案(office2007版)

use tablename go truncate table tablename go insert into table(x,x,x,x,x,x) select x,x,x,x,x,x from OpenDataSource('Microsoft.Ace.OLEDB.12

IDEA如何匯出匯入配置檔案

匯出配置開啟工具,找到 file -> export setting ,選擇路徑即可,匯出的是setting.jar檔案。匯入配置file –> import setttings –> 選則jar檔案 –> 一路確認 –> 重啟

匯出匯入資料庫 dmp檔案

將Oracle數 據庫匯出到本地磁碟中   具體實現程式碼 匯出: exp 使用者名稱/密碼@資料庫 owner='使用者名稱' file=D:\*.dmp buffer=9000000 compress=y log=D:\*.log 舉例: exp scott/[em

MySQL基礎之 匯出匯入之文字檔案

1、使用SELECT.......INTO  OUTFILE匯出文字檔案 該檔案被建立在伺服器主機上,因此必須有檔案寫入許可權(FILE許可權),才能使用此語法 語法: select columnlist from Table WHERE condition into outfile

mong db 批量匯出匯入json檔案的實際操作記錄,匯出匯入一張表

需求是這樣的:需要修改資料庫中某個表的所有資料,所以,要全部匯出,然後修改,修改完之後,再把修改後的資料給再匯入到mongo去。 具體如下: 備份,匯出一張表為json檔案 具體命令: mo

MVC中將上一次匯出的EXCEL檔案匯入驗證並儲存到資料庫中

1、網頁中加入file元素,並新增表單 @using (Html.BeginForm("StationImport", "home", FormMethod.Post, new { enctype = "multipart/form-data" })) {     <

Oracle匯入匯出資料庫dmp檔案

版本 1、例項資料完全匯出 即匯出指定例項下的所有資料 exp username/[email protected]/orcl file=d:/daochu/test.dmp full=y 2、使用者資料匯出 即匯出指定例項下指定使用者的資料,如下為匯出使用者myora

JFileChooser實現檔案匯出匯入到Excel

最近在做一個檔案匯入匯出到Excel的專案模組,做了一個簡單的Demo,放在這裡。 注:對Excel的操作使用的是poi.jar包; package jfile; import java.io.File; import java.io.FileInputStream; i

Postgres無法用navicat prenium匯入匯出sql檔案,Postgres命令列匯出匯入

使用命令列操作   psql -U postgres(使用者名稱) -d postgres(資料庫名,預設時同用戶名) <  C:\Users\絕影\Desktop\public.sql pg_dump -h (伺服器ip) -p (埠號) -U postg

mysql-匯入匯出sql指令碼檔案

匯入: source /home/work/hanlei.sql匯出: 1.匯出整個資料庫 mysqldump -u 使用者名稱 -p 資料庫名 > 匯出的檔名 mysqldump -u root -p qingwu > qingwu.sql

mySQL第一步,匯入匯出現有資料庫檔案

以下的文章主要介紹的是MySQL匯入sql 檔案,即MySQL資料庫匯入匯出sql 檔案的實際操作步驟,我們主要是將其分成5大步驟對其進行講述,如果你對其有興趣的話你就可以點選以下的文章進行觀看了。 步驟如下: 一.MySQL的命令列模式的設定: 桌面->我的

匯入dmp檔案,提示不是有效的匯出檔案,頭部驗證失敗

現象描述:    1)匯出的DMP檔案為11g    2)進行IMP匯入的客戶端是10g    3)目標服務端是11g 網上查到的原因:    1)IMP客戶端與目標服務端的版本不一致    2)匯

如何在oracle中匯入匯出dmp資料庫檔案

 Oracle資料匯入匯出imp/exp就相當於oracle資料還原與備份。exp命令可以把資料從遠端資料庫伺服器匯出到本地的dmp檔案,imp命令可以把dmp檔案從本地匯入到遠處的資料庫伺服器中。 利用這個功能可以構建兩個相同的資料庫,一個用來測試,一個用來正式使用。  

cmd匯入匯出oracle dmp檔案

開啟cmd視窗,執行以下格式命令: exp 使用者名稱/密碼@伺服器IP:埠/服務名  file=dmp檔案路徑 full=y 例如: 資料匯出:匯出的資料庫名稱是在tnsnames.ora檔案中定義的(本地oracle BIN目錄下,或者是plsql遠端連線oracl

mysql mysqldump匯出匯入sql檔案

MySql資料庫備份與恢復——使用mysqldump 匯入與匯出方法總結 mysqldump客戶端可用來轉儲資料庫或蒐集資料庫進行備份或將資料轉移到另一個sql伺服器(不一定是一個mysql伺服器)。轉儲包含建立表和/或裝載表的sql語句。 如果在伺服器上進行備份,並且

mysql匯入dmp檔案匯出

使用命令匯入dmp檔案(下文介紹另一種方式) #1.進入mysql bin目錄 cd C:\Program Files\MySQL\MySQL Server 5.7\bin #2.使用匯入命令;