phpexcel開發,PHPexcel

本文目錄一覽:

thinkphp3.1中的phpexcel導入怎麼用

首先,去PHPExcel官方網站下載PHPExcel,官方地址為;.我下的是1.8.0版本的.解壓後發現還是蠻大的,有十幾M,不知道其他版本是不是會小點.

這裡寫圖片描述

把解壓好的PHPExcel文件放在ThinkPHP的Vender文件夾下(專門放第三方類庫的),如下圖

這裡寫圖片描述

其次,創建Excel轉換數組類,並把它放在ThinkPHP\Extend\Library\ORG\Util目錄下

class ExcelToArrary {

public function __construct() {

Vendor(“PHPExcel.Classes.PHPExcel”);//引入phpexcel類(留意路徑,不了解路徑可以查看下手冊)

Vendor(“PHPExcel.Classes.PHPExcel.IOFactory”); //引入phpexcel類(留意路徑)

}

public function read($filename,$encode,$file_type){

if(strtolower ( $file_type )==’xls’)//判斷excel表類型為2003還是2007

{

Vendor(“PHPExcel.Classes.PHPExcel.Reader.Excel5”); //引入phpexcel類(留意路徑)

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

}elseif(strtolower ( $file_type )==’xlsx’)

{

Vendor(“PHPExcel.Classes.PHPExcel.Reader.Excel2007”);//引入phpexcel類(留意路徑)

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

}

$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;

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

如右圖這裡寫圖片描述

現在來說Excel,表格的結構樣式和MySQL樣式要類似,表格樣式如下(本人對Excel使用只是一般,所以如果有Excel大神做的報表,不知後果如何).

這裡寫圖片描述

前端頁面相關代碼:

div

form method=”post” action=”{:U(‘Index/upload’)}” enctype=”multipart/form-data”

font導入Excel數據:/font

label for=”file_stu”上傳/label

input name=”file_stu” type=”file” id=”file_stu” /

h3溫馨提示:/h3

p請確認您的Excel表格類型是xls的,以免出現兼容問題./p

inputtypeinputtype=”submit” class=”sure” value=”導入” /

/form

/div

1

2

3

4

5

6

7

8

9

10

1

2

3

4

5

6

7

8

9

10

最後,控制器部分使用了Thinkphp自帶的上傳類,使用unlink()函數是為了刪除上傳的excel表格,以免文件夾存入過多文件,調試代碼時可先注釋掉.或者不寫也行,把刪除文件的工作交給你們的運維.代碼中foreach循環部分$v[]里的0, 1,2可以改動以下看看與Excel表格里的內容是什麼關係.可以把數組列印出來看一看,你就很清楚了

相關代碼:

public function upload(){

import(‘ORG.Util.ExcelToArrary’);//導入excelToArray類

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

import(‘ORG.Net.UploadFile’);

$upload = new UploadFile();// 實例化上傳類

$upload-maxSize = 3145728 ;// 設置附件上傳大小

$upload-allowExts = array(‘xls’, ‘xlsx’);// 設置附件上傳類型

$upload-savePath = ‘./Uploads/’;// 設置附件上傳目錄

if(!$upload-upload()) {// 上傳錯誤提示錯誤信息

$this-error($upload-getErrorMsg());

}else{// 上傳成功 獲取上傳文件信息

$info = $upload-getUploadFileInfo();

}

}else{

$this-error(‘(⊙o⊙)~沒傳數據就導入?!你在逗我?!’);

}

//dump($info);die;

$ExcelToArrary=new ExcelToArrary();//實例化

$res=$ExcelToArrary-read($info[0][‘savepath’].$info[0][‘savename’],”UTF-8″,$info[0][‘extension’]);//傳參,判斷office2007還是office2003

$res = array_slice($res,1); //為了去掉Excel里的表頭,也就是$res數組裡的$res[0];

//dump($res);

foreach ( $res as $k = $v ){ //循環excel表

$data[$k][‘mobile’] = $v [0];//創建二維數組

$data[$k][‘name’] = $v [1];

$data[$k][‘duty’] = $v [2];

}

//dump($data);die;

$result=M(‘appkey’)-addAll($data);

if(!$result){

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

exit();

}else{

$filename = ‘./Uploads/’.$info[0][‘savename’];//上傳文件絕對路徑,unlink()刪除文件函數

if (unlink($filename)) {

$this-success ( ‘導入成功’ );

}else{

$this-error(‘緩存刪除失敗’);

}

}

}

用php如何寫導出excel代碼?

用PHPExcel,PHPExcel是相當強大的 MS Office Excel 文檔生成類庫。

你上它的官/網把程序包下/載下來,裡面有 PHPExcel 的程序、還有30個實常式序和三個文檔。

看一下其中的開發文檔你就會用了。

讀取(這段在開發文檔里有的,在13頁):

require_once ‘../Classes/PHPExcel/IOFactory.php’;

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

$objReader-setReadDataOnly(true);

$objPHPExcel = $objReader-load(“test.xlsx”);

$objWorksheet = $objPHPExcel-getActiveSheet();

echo ‘table’ . “\n”;

foreach ($objWorksheet-getRowIterator() as $row) {

echo ‘tr’ . “\n”;

$cellIterator = $row-getCellIterator();

$cellIterator-setIterateOnlyExistingCells(false);

foreach ($cellIterator as $cell) {

echo ‘td’ . $cell-getValue() . ‘/td’ . “\n”;

}

echo ‘/tr’ . “\n”;

}

echo ‘/table’ . “\n”;

?

phpexcel 支持什麼版本的 excel

phpexcel 支持生成Excel(.xls)、Excel2007(.xlsx)文檔,此外還支持PDF、HTML、CSV文檔的生成。此外,PHPExcel還支持以現有的Excel文檔為模板填充數據生成新的以上文檔。並且,其本身的API文檔和示例demo相當完整,非常有助於開發人員使用。

當前的版本是1.7.6,下載解壓後的PHPExcel的目錄結構如下所示:

其中:

Classes目錄下是PHPExcel的源代碼文件:PHPExcel.php文件是類庫的介面,外部的PHP代碼通過它來實現對PHPExcel的調用;PHPExcel目錄下是各種不同文檔(如Excel、Excel2007、PDF等)的讀取和生成的具體操作代碼,它們由Classes目錄下的PHPExcel.php文件通過工廠模式統一進行調用。

Documentation目錄下是PHPExcel的官方幫助文檔,尤其是API目錄下網頁文件全部是PHPExcel的API幫助文檔,而其它的則是對這個開源項目的介紹。

Tests目錄下是PHPExcel的將近40個示例小程序,可以與Classes目錄一同放到Apache+PHP環境下進行測試與學習。

原生PHP代碼實現excel導入,並添加數據到資料庫.

我用的代碼是:

?

//連接資料庫文件

$connect=mysql_connect(“localhost”,”admin”,”admin”) or die(“鏈接資料庫失敗!”);

//連接資料庫(test)

mysql_select_db(“testcg”,$connect) or die (mysql_error());

$temp=file(“test.csv”);//連接EXCEL文件,格式為了.csv

for ($i=0;$i count($temp);$i++)

{

$string=explode(“,”,$temp[$i]);//通過循環得到EXCEL文件中每行記錄的值

//將EXCEL文件中每行記錄的值插入到資料庫中

$q=”insert into ceshi (name,num,dom) values(‘$string[0]’,’$string[1]’,’$string[2]’);”;

mysql_query($q) or die (mysql_error());

if (!mysql_error());

{

echo ” 成功導入數據!”;

}

echo $string[4].”\n”;

unset($string);

}

?

——————————————————————————–

phpexcel或者pear的一個組件 ,國內有一個excelclass的插件

都是用來處理excel的,前2個功能都比較強大,對編碼的支持也都不錯,推薦使用pear的那個,名字好像叫spreadsheet reader

phpexcel比較費資源,不過並不是所有的excel都能讀取

樓主可以到這裡去看看 pear.php.net

——————————————————————————–

頂樓上的回答~~順便接個分!嘿嘿

——————————————————————————–

AdO直接上傳

注意有些字元mysql或ADO可能不支持

——————————————————————————–

首先確認你的資料庫是什麼編碼的,以utf-8為例,

你首先打開excel 文件,然後保存,選擇為另存為.csv文件。

然後用文本編輯器打開.csv文件,另存為utf-8的csv

然後你寫php 可以使用php 的getcsv 打開(這樣確保你有的欄位中含有,而導致解析錯誤),然後把解析的結果導入到資料庫中。

然後完了。

phpexcel 讀取excel load方法卡死過不去 代碼如下

PHP讀EXECL不要用ODBC,直接用一個類就可以了phpExcelReader這個類是老外一直在開發的類,裡面涵蓋了幾乎所有EXECL的讀取和寫入功能,甚至圖片和批註都可以讀,我覺得這個類可以滿足你所有PHP關於EXECL的讀寫工作完成任務就要用做好的方法,一直用一種自己會但不是最好法總歸不是好程序員所為,加油吧。

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

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

相關推薦

發表回復

登錄後才能評論