phpexcel組件編程spl,PHPExcel

本文目錄一覽:

如何在Yii Framework中使用PHPExcel組件

如果是Yii2的話,可以使用composer安裝phpexcel庫,具體搜索。

安裝後,use 這個phpexcel,然後就可以使用這個庫了,不use導入進來也可以,不過用的時候要把namespace也寫進來才能正確找到這個類。對於phpexcel的方法就不說了,網上有。

如果是yii1版本的話,你搜搜看有沒有phpexcel的插件之類的吧,一般都會有,你可以到官方那搜索。使用方法插件作者都有說。(沒在yii1.x用過,只在yii2用過)

對於phpexcel的使用就不多說了,官方和網上都有很多說明。

PHP-ExcelReader 怎樣才能支持讀取excel2007文檔

php-excel-reader是一個讀取excel的類,可以很輕鬆的使用它讀取excel文件非常方便。

下載地址:

php代碼如下:

?php

/*by */

header(“Content-Type:text/html;charset=utf-8”);

require_once ‘excel_reader2.php’;

//創建對象

$data = new Spreadsheet_Excel_Reader();

//設置文本輸出編碼

$data-setOutputEncoding(‘UTF-8’);

//讀取Excel文件

$data-read(“example.xls”);

//$data-sheets[0][‘numRows’]為Excel行數

for ($i = 1; $i = $data-sheets[0][‘numRows’]; $i++) {

//$data-sheets[0][‘numCols’]為Excel列數

for ($j = 1; $j = $data-sheets[0][‘numCols’]; $j++) {

//顯示每個單元格內容

echo $data-sheets[0][‘cells’][$i][$j].’ ‘;

}

echo ‘br’;

}

?

讀取結果截圖如下:

thinkphp怎麼用phpexcel導出數據到excel

(一)導入Excel

第一,在前台html頁面進行上傳文件:如:

複製代碼 代碼如下:

form method=”post” action=”php文件” enctype=”multipart/form-data”

h3導入Excel表:/h3input type=”file” name=”file_stu” /

input type=”submit” value=”導入” /

/form

第二,在對應的php文件進行文件的處理

複製代碼 代碼如下:

if (! empty ( $_FILES [‘file_stu’] [‘name’] ))

{

$tmp_file = $_FILES [‘file_stu’] [‘tmp_name’];

$file_types = explode ( “.”, $_FILES [‘file_stu’] [‘name’] );

$file_type = $file_types [count ( $file_types ) – 1];

/*判別是不是.xls文件,判別是不是excel文件*/

if (strtolower ( $file_type ) != “xls”)

{

$this-error ( ‘不是Excel文件,重新上傳’ );

}

/*設置上傳路徑*/

$savePath = SITE_PATH . ‘/public/upfile/Excel/’;

/*以時間來命名上傳的文件*/

$str = date ( ‘Ymdhis’ );

$file_name = $str . “.” . $file_type;

/*是否上傳成功*/

if (! copy ( $tmp_file, $savePath . $file_name ))

{

$this-error ( ‘上傳失敗’ );

}

/*

*對上傳的Excel數據進行處理生成編程數據,這個函數會在下面第三步的ExcelToArray類中

注意:這裡調用執行了第三步類裡面的read函數,把Excel轉化為數組並返回給$res,再進行資料庫寫入

*/

$res = Service ( ‘ExcelToArray’ )-read ( $savePath . $file_name );

/*

重要代碼 解決Thinkphp M、D方法不能調用的問題

如果在thinkphp中遇到M 、D方法失效時就加入下面一句代碼

*/

//spl_autoload_register ( array (‘Think’, ‘autoload’ ) );

/*對生成的數組進行資料庫的寫入*/

foreach ( $res as $k = $v )

{

if ($k != 0)

{

$data [‘uid’] = $v [0];

$data [‘password’] = sha1 ( ‘111111’ );

$data [’email’] = $v [1];

$data [‘uname’] = $v [3];

$data [‘institute’] = $v [4];

$result = M ( ‘user’ )-add ( $data );

if (! $result)

{

$this-error ( ‘導入資料庫失敗’ );

}

}

}

}

第三:ExcelToArrary類,用來引用phpExcel並處理Excel數據的

複製代碼 代碼如下:

class ExcelToArrary extends Service{

public function __construct() {

/*導入phpExcel核心類 注意 :你的路徑跟我不一樣就不能直接複製*/

include_once(‘./Excel/PHPExcel.php’);

}

/**

* 讀取excel $filename 路徑文件名 $encode 返回數據的編碼 默認為utf8

*以下基本都不要修改

*/

public function read($filename,$encode=’utf-8′){

$objReader = PHPExcel_IOFactory::createReader(‘Excel5’);

$objReader-setReadDataOnly(true);

$objPHPExcel = $objReader-load($filename);

$objWorksheet = $objPHPExcel-getActiveSheet();

  $highestRow = $objWorksheet-getHighestRow();

  $highestColumn = $objWorksheet-getHighestColumn();

$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);

$excelData = array();

 for ($row = 1; $row = $highestRow; $row++) {

for ($col = 0; $col $highestColumnIndex; $col++) {

$excelData[$row][] =(string)$objWorksheet-getCellByColumnAndRow($col, $row)-getValue();

}

}

return $excelData;

}

}

第四,以上就是導入的全部內容,phpExcel包附在最後。

(二)Excel的導出(相對於導入簡單多了)

第一,先查出資料庫裡面要生成Excel的數據,如:

$data= M(‘User’)-findAll(); //查出數據

$name=’Excelfile’; //生成的Excel文件文件名

$res=service(‘ExcelToArrary’)-push($data,$name);

第二,ExcelToArrary類,用來引用phpExcel並處理數據的

複製代碼 代碼如下:

class ExcelToArrary extends Service{

public function __construct() {

/*導入phpExcel核心類 注意 :你的路徑跟我不一樣就不能直接複製*/

include_once(‘./Excel/PHPExcel.php’);

}

/* 導出excel函數*/

public function push($data,$name=’Excel’){

error_reporting(E_ALL);

date_default_timezone_set(‘Europe/London’);

$objPHPExcel = new PHPExcel();

/*以下是一些設置 ,什麼作者 標題啊之類的*/

$objPHPExcel-getProperties()-setCreator(“轉彎的陽光”)

-setLastModifiedBy(“轉彎的陽光”)

-setTitle(“數據EXCEL導出”)

-setSubject(“數據EXCEL導出”)

-setDescription(“備份數據”)

-setKeywords(“excel”)

-setCategory(“result file”);

/*以下就是對處理Excel里的數據, 橫著取數據,主要是這一步,其他基本都不要改*/

foreach($data as $k = $v){

$num=$k+1;

$objPHPExcel-setActiveSheetIndex(0)

//Excel的第A列,uid是你查出數組的鍵值,下面以此類推

-setCellValue(‘A’.$num, $v[‘uid’])

-setCellValue(‘B’.$num, $v[’email’])

-setCellValue(‘C’.$num, $v[‘password’])

}

$objPHPExcel-getActiveSheet()-setTitle(‘User’);

$objPHPExcel-setActiveSheetIndex(0);

header(‘Content-Type: application/vnd.ms-excel’);

header(‘Content-Disposition: attachment;filename=”‘.$name.’.xls”‘);

header(‘Cache-Control: max-age=0’);

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, ‘Excel5’);

$objWriter-save(‘php://output’);

exit;

}

第三,以上就是導出的全部內容,phpExcel包附在最後。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/272285.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-17 13:55
下一篇 2024-12-17 13:55

相關推薦

  • 如何修改ant組件的動效為中心

    當我們使用Ant Design時,其默認的組件動效可能不一定符合我們的需求,這時我們需要修改Ant Design組件動效,使其更加符合我們的UI設計。本文將從多個方面詳細闡述如何修…

    編程 2025-04-29
  • Ant Design組件的動效

    Ant Design是一個基於React技術棧的UI組件庫,其中動效是該組件庫中的一個重要特性之一。動效的使用可以讓用戶更清晰、更直觀地了解到UI交互的狀態變化,從而提高用戶的滿意…

    編程 2025-04-29
  • 用mdjs打造高效可復用的Web組件

    本文介紹了一個全能的編程開發工程師如何使用mdjs來打造高效可復用的Web組件。我們將會從多個方面對mdjs做詳細的闡述,讓您輕鬆學習並掌握mdjs的使用。 一、mdjs簡介 md…

    編程 2025-04-27
  • Spring MVC主要組件

    Spring MVC是一個基於Java語言的Web框架,是Spring Framework的一部分。它提供了用於構建Web應用程序的基本架構,通過與其他Spring框架組件集成,使…

    編程 2025-04-27
  • Mescroll.js——移動端下拉刷新和上拉載入更多組件

    一、概述 Mescroll.js是一款移動端的下拉刷新和上拉載入更多組件,因其簡單易用和功能強大而深受開發者的喜愛。Mescroll.js可以應用於各種移動端網站和APP,能夠支持…

    編程 2025-04-25
  • Vue強制重新渲染組件詳解

    一、Vue強制重新渲染組件是什麼? Vue中的強制重新渲染組件指的是,當我們需要重新渲染組件,但是組件上的數據又沒有改變時,我們可以使用強制重新渲染的方式來觸發組件重新渲染。這種方…

    編程 2025-04-25
  • Vue封裝公共組件的最佳實踐

    一、封裝公共組件的意義 隨著前端技術的不斷發展,Web應用程序變得越來越複雜。為了更好地管理和維護代碼,我們通常需要編寫可重用的組件,而這些組件往往是我們所寫的多個項目都需要用到的…

    編程 2025-04-25
  • 深度解析Ant Design中Table組件的使用

    一、Antd表格兼容 Antd是一個基於React的UI框架,Table組件是其重要的組成部分之一。該組件可在各種瀏覽器和設備上進行良好的兼容。同時,它還提供了多個版本的Antd框…

    編程 2025-04-25
  • UMY-UI組件庫詳解——一款優秀的React組件庫

    隨著前端組件化的風潮,越來越多的組件庫被開發出來。其中,UMY-UI便是一款優秀的React組件庫。 一、基本介紹 UMY-UI是基於React框架開發的一套UI組件庫,提供了豐富…

    編程 2025-04-24
  • React 子組件調用父組件方法

    一、基本介紹 React 是一個非常流行的 JavaScript 庫,用於構建用戶界面。React 的主要思想是組件化,允許將 UI 拆分為獨立的、可復用的部分。React 組件有…

    編程 2025-04-23

發表回復

登錄後才能評論