php導入xlsx,php怎麼引入php

本文目錄一覽:

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 讀取xlsx 導入mysql代碼

?php

header(“content-Type:

text/html;

charset=

utf8

“);

error_reporting(0);

$

connection

=

mysql_connect(‘

localhost

‘,

‘root’,

‘password’);

// 連接資料庫

mysql_select_db

(‘test’);

//

選擇資料庫

mysql_query(“SET

NAMES

‘utf8′”);

//

設置

字符集

//

連接EXCEL

$conn=new

com(“adodb.connection”,

NULL,

CP_UTF8);

$connstr=”Driver={Microsoft

Excel

Driver

(*.xls)};DBQ=”.realpath(“excel.xls”);

$conn-open($connstr);

$sql=”select

*

from

[Sheet1$]”;

//

查詢EXCEL工作表

$rs=$conn-execute($sql);

while(!$rs-eof)

{

$id =

trim($rs-fields(id)-value);

//

將excel中Sheet1表中的id存到$id;

$name =

trim($rs-fields(name)-value);

//

將excel中Sheet1表中的name存到$name;

$sex

=

trim($rs-fields(sex)-value);

//

將excel中Sheet1表中的sex存到$sex;

// 生成SQL

INSERT語句

$sql

=

“INSERT

INTO

test(id,

name,

sex)

VALUES(‘$id’,

‘$name’,

‘$sex’)”;

//

插入資料庫

mysql_query($sql);

$rs-movenext;

}

mysql_close

($connection);

?

thinkphp 怎麼把資料庫導入excel

本文實例講述了thinkPHP實現將excel導入到資料庫中的方法。分享給大家供大家參考,具體如下:PHPExcel插件可點擊此處本站下載。這裡使用的是thinkphp框架的3.1版本,下載好壓縮包,框架中的extend中的vendor文件夾中新建一個名為PHPExcel的文件夾,把classes裡面的內容放到裡面下面是前端頁面提示:我在測試的時候遇到報錯exception ‘PHPExcel_Reader_Exception’ with message ‘The filename原因是由於excel的文件後綴可能不同,我的文件後綴是xlsx,然後給把他另存為了xls的文件,就可以了html head /head body form action=”{pigcms::U(‘Jdb/abcdefgwulisuibian’)}” method=”post” enctype=”multipart/form-data” input type=”file” name=”import”/ input type=”hidden” name=”table” value=”tablename”/ input type=”submit” value=”導入”/ /form /body /html 下面是php的function abcdefgwulisuibianuplod(){ $this-display();//顯示頁面 } function abcdefgwulisuibian(){ if (!empty($_FILES)) { import(“@.ORG.UploadFile”); $config=array( ‘allowExts’=array(‘xlsx’,’xls’), ‘savePath’=’./Public/upload/’, ‘saveRule’=’time’, ); $upload = new UploadFile($config); if (!$upload-upload()) { $this-error($upload-getErrorMsg()); } else { $info = $upload-getUploadFileInfo(); } vendor(“PHPExcel.PHPExcel”); $file_name=$info[0][‘savepath’].$info[0][‘savename’]; $objReader = PHPExcel_IOFactory::createReader(‘Excel5′); $objPHPExcel = $objReader-load($file_name,$encode=’utf-8’); $sheet = $objPHPExcel-getSheet(0); $highestRow = $sheet-getHighestRow(); // 取得總行數 $highestColumn = $sheet-getHighestColumn(); // 取得總列數 for($i=2;$i=$highestRow;$i++)//這個地方根據需要,一般第一行是名稱,所以從第二行開始循環,也可以從第一行開始 { $data[‘lianjieid’] = $objPHPExcel-getActiveSheet()-getCell(“A”.$i)-getValue();//資料庫欄位和excel列相對應 $data[‘yaoqingma’] = $objPHPExcel-getActiveSheet()-getCell(“B”.$i)-getValue(); $data[‘dlmima’]= $objPHPExcel-getActiveSheet()-getCell(“C”.$i)-getValue(); $data[‘ljdizhi’]= $objPHPExcel-getActiveSheet()-getCell(“D”.$i)-getValue(); M(‘jdb’)-add($data);//插入資料庫 } $this-success(‘導入成功!’); }else { $this-error(“請選擇上傳的文件”); } } 更多關於thinkPHP相關內容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《ThinkPHP常用方法總結》、《smarty模板入門基礎教程》及《PHP模板技術總結》。希望本文所述對大家基於ThinkPHP框架的PHP程序設計有所幫助。

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
PNVDG的頭像PNVDG
上一篇 2025-01-13 13:23
下一篇 2025-01-13 13:23

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若伺服器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • PHP與Python的比較

    本文將會對PHP與Python進行比較和對比分析,包括語法特性、優缺點等方面。幫助讀者更好地理解和使用這兩種語言。 一、語法特性 PHP語法特性: <?php // 簡單的P…

    編程 2025-04-27
  • PHP版本管理工具phpenv詳解

    在PHP項目開發過程中,我們可能需要用到不同版本的PHP環境來試驗不同的功能或避免不同版本的兼容性問題。或者我們需要在同一台伺服器上同時運行多個不同版本的PHP語言。但是每次手動安…

    編程 2025-04-24
  • PHP數組去重詳解

    一、array_unique函數 array_unique是php中常用的數組去重函數,它基於值來判斷元素是否重複,具體使用方法如下: $array = array(‘a’, ‘b…

    編程 2025-04-24
  • PHP導出Excel文件

    一、PHP導出Excel文件列寬調整 當我們使用PHP導出Excel文件時,有時需要調整單元格的列寬。可以使用PHPExcel類庫中的setWidth方法來設置單元格的列寬。下面是…

    編程 2025-04-24
  • php擴展庫初探

    一、什麼是php擴展庫? PHP擴展庫(PHP extension)是一些用C語言編寫的動態鏈接庫,用於擴展PHP的功能。PHP擴展庫使得PHP可以與各種資料庫系統相連、SMTP、…

    編程 2025-04-23

發表回復

登錄後才能評論