本文目錄一覽:
- 1、thinkPHP怎樣使用PHPExcel導出網站數據為excel
- 2、PHP 用PHPExcel往數據庫導入大量數據
- 3、yii2 怎麼安裝和使用PHPExcel?
- 4、thinkphp5.0 如何導入phpexcel插件,能詳細些點嗎
- 5、thinkphp3.1中的phpexcel導入怎麼用
- 6、thinkphp中phpexcel怎麼使用
thinkPHP怎樣使用PHPExcel導出網站數據為excel
1
一、下載PHPExcel包
2
二、新建文件夾,命名為PHPExcel,將上面兩個文件PHPExcel,PHPExcel.php放到我們新建的PHPExcel文件夾下面;然後將此文件夾放在thinkPHP核心包裏面,路徑如下:D:\***\你的項目\ThinkPHP\Library\Vendor
3
三、前端界面代碼
div style=”margin-left: 100px;margin-top: -33px;”
form action=”{:U(output)}” enctype=”multipart/form-data” method=”post”
input type=”file” name=”photo” /
input type=”submit” value=”導出數據” style=”background-color: #337AB7;color: white;”
/form
/div
4
四、導出表格樣式代碼
//商家表格導出模板
public function exportExcel($expTitle, $expCellName, $expTableData) {
$xlsTitle = iconv(‘utf-8’, ‘gb2312’, $expTitle); //文件名稱
$fileName = ‘網站商家信息表’ . date(‘_YmdHis’); //or $xlsTitle 文件名稱可根據自己情況設定
$cellNum = count($expCellName);
$dataNum = count($expTableData);
vendor(“PHPExcel.PHPExcel”);
$objPHPExcel = new\PHPExcel();
$cellName = array(‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’, ‘H’, ‘I’, ‘J’,
‘K’, ‘L’, ‘M’, ‘N’, ‘O’, ‘P’, ‘Q’, ‘R’, ‘S’, ‘T’, ‘U’, ‘V’, ‘W’, ‘X’,
‘Y’, ‘Z’, ‘AA’, ‘AB’, ‘AC’, ‘AD’, ‘AE’, ‘AF’, ‘AG’, ‘AH’, ‘AI’, ‘AJ’,
‘AK’, ‘AL’, ‘AM’, ‘AN’, ‘AO’, ‘AP’, ‘AQ’, ‘AR’, ‘AS’, ‘AT’, ‘AU’, ‘AV’,
‘AW’, ‘AX’, ‘AY’, ‘AZ’);
$objPHPExcel-getActiveSheet()-getColumnDimension(‘F’)-setWidth(22);
$objPHPExcel-getActiveSheet()-getColumnDimension(‘D’)-setWidth(10);
$objPHPExcel-getActiveSheet()-getColumnDimension(‘G’)-setWidth(10);
$objPHPExcel-getActiveSheet()-getColumnDimension(‘H’)-setWidth(15);
$objPHPExcel-getActiveSheet()-getColumnDimension(‘A’)-setWidth(10);
$objPHPExcel-getActiveSheet()-getColumnDimension(‘B’)-setWidth(15);
$objPHPExcel-getActiveSheet()-getColumnDimension(‘C’)-setWidth(20);
$objPHPExcel-getActiveSheet()-getColumnDimension(‘E’)-setWidth(15);
$objPHPExcel-getActiveSheet()-getColumnDimension(‘I’)-setWidth(20);
$objPHPExcel-getActiveSheet()-getColumnDimension(‘J’)-setWidth(10);
$objPHPExcel-getActiveSheet()-getColumnDimension(‘K’)-setWidth(20);
$objPHPExcel-getActiveSheet()-getColumnDimension(‘L’)-setWidth(20);
$objPHPExcel-getActiveSheet()-getColumnDimension(‘M’)-setWidth(25);
$objPHPExcel-getActiveSheet()-getColumnDimension(‘L’)-setWidth(22);
$objPHPExcel-getActiveSheet()-getColumnDimension(‘M’)-setWidth(12);
$objPHPExcel-getActiveSheet()-getColumnDimension(‘N’)-setWidth(15);
$objPHPExcel-getActiveSheet(0)-mergeCells(‘A1:’ . $cellName[$cellNum – 1] . ‘1’);
//合併單元格
$objPHPExcel-getActiveSheet()-setCellValue(‘A1’,
‘網站商家信息表’)-getStyle()-getAlignment()-setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
for ($i = 0; $i $cellNum; $i++) {
$objPHPExcel-setActiveSheetIndex(0)-setCellValue($cellName[$i].’2′, $expCellName[$i][1]);
}
// Miscellaneous glyphs, UTF-8
for ($i = 0; $i $dataNum; $i++) {
for ($j = 0; $j $cellNum; $j++) {
$objPHPExcel-getActiveSheet(0)-setCellValue($cellName[$j] .
($i + 3), ” “.$expTableData[$i][$expCellName[$j][0]]);
}
}
ob_end_clean(); //清除緩衝區,避免亂碼
header(‘pragma:public’);
header(‘Content-type:application/vnd.ms-excel;charset=utf-8;name=”‘.$xlsTitle. ‘.xls”‘);
header(“Content-Disposition:attachment;filename=$fileName.xls”);
//attachment新窗口打印inline本窗口打印
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, ‘Excel5’);
$objWriter-save(‘php://output’);
exit;
}
5
五、導出所需數據代碼
function output($begin=0, $end=0) {//導出商家信息Excel
$xlsName = “User”;
$xlsCell = array(
array(‘userid’, ‘商家id’),
array(‘groupid’, ‘商家等級’),
array(‘store_name’, ‘店鋪名稱’),
array(‘contact_name’, ‘聯繫人’),
array(‘phone’, ‘手機’),
array(’email’, ‘郵箱’),
array(‘activity_count’, ‘活動商品’),
array(‘frozen_deposit’, ‘凍結中保證金’),
array(‘regdate’, ‘註冊時間’),
array(‘loginnum’, ‘登錄次數’),
array(‘lastdate’, ‘最近登錄’),
array(‘id_number’, ‘身份證號碼’),
array(‘name’, ‘姓名’),
array(‘qq’, ‘QQ’), );
$beginToday = mktime(0, 0, 0, date(‘m’), date(‘d’), date(‘Y’));
$endToday = mktime(0, 0, 0, date(‘m’), date(‘d’) + 1, date(‘Y’)) – 1;
if ($begin 0) { $beginToday = $begin;}
if ($end 0) {$endToday = $end;}
$xlsModel = M(‘member’);
$xlsData=$xlsModel-query(“SELECT
m.userid,m.groupid,c.store_name,c.contact_name,m.phone,m.email,c.frozen_deposit,FROM_UNIXTIME(m.regdate)
AS regdate,loginnum,FROM_UNIXTIME(m.lastdate) AS lastdate,m.qq FROM
xw_member AS m ,xw_member_merchant AS c WHERE m.modelid = 2 AND m.userid
= c.userid and (m.lastdate between $beginToday and $endToday) ORDER BY
m.userid DESC”);
$dataNum = count($xlsData);
for ($i = 0; $i $dataNum; $i++){
if ($xlsData[$i][groupid] == ‘1’) {
$xlsData[$i][groupid] = ‘普通商家’;
} else if ($xlsData[$i][groupid] == ‘2’) {
$xlsData[$i][groupid] = ‘金牌商家’;
} else if ($xlsData[$i][groupid] == ‘3’) {
$xlsData[$i][groupid] = ‘白金商家’;
} else if ($xlsData[$i][groupid] == ‘4’) {
$xlsData[$i][groupid] = ‘鑽石商家’;
}
$rs=M(‘member_attesta’)-where(“userid= ‘”.$xlsData[$i][‘userid’].”‘
AND type = ‘identity'”)-getField(‘infos’);
$identity = string2array($rs);
$xlsData[$i][‘id_number’] = $identity[‘id_number’];
$xlsData[$i][‘name’] = $identity[‘name’];
$xlsData[$i][‘activity_count’]=
M(‘product’)-where(array(‘company_id’=$xlsData[$i][‘userid’]))-count();
}
$this-exportExcel($xlsName, $xlsCell, $xlsData);
}
}
6
六、導出數據表格如下
PHP 用PHPExcel往數據庫導入大量數據
1、首先我們準備一個含有數據的Excel表格,表頭和數據表中的表字段相對應。
2、在ThinkPHP中引入PHPExcel類庫。
3、然後我們編寫導入的PHP代碼。
4、然後我們編寫導出的PHP代碼。
5、然後我們進行導出測試發現可以導出即可。
yii2 怎麼安裝和使用PHPExcel?
在yii2項目的根目錄下的composer.json中的require那裡加入
“phpoffice/phpexcel”: “dev-develop”
然後使用終端(windows使用cmd)進入yii2項目目錄
執行以下命令即可:
composer update
使用的話,就很簡單,use導入phpexcel類,然後就可以使用了(具體使用請看文檔)
thinkphp5.0 如何導入phpexcel插件,能詳細些點嗎
下載phpexcel,將整個文件夾放到vendor文件夾裏面,如下圖
在控制器中的使用方法
vendor(“PHPExcel.PHPExcel”);
$objPHPExcel = new \PHPExcel();
$file_name = date(‘YmdHis’).’.xls’;
header(“Content-Disposition:attachment; filename=”.$file_name);
$objActSheet = $objPHPExcel-getActiveSheet()-setTitle(‘成績單’);
$objActSheet-SetCellValue(‘A1’, ‘ID’);
$objActSheet-SetCellValue(‘B1’, ‘名稱’);
$objActSheet-SetCellValue(‘C1’, ‘分數’);
$list = “”;//數據列表
if($list){
foreach ($list as $k = $v){
$i = $k + 2;
$objActSheet-SetCellValue(‘A’.$i,”. $v[‘id’]);
$objActSheet-SetCellValue(‘B’.$i,”. $v[‘name’]);
$objActSheet-SetCellValue(‘C’.$i,”. $v[‘score’]);
}
$objWriter = new \PHPExcel_Writer_Excel5($objPHPExcel);
$objWriter-save(‘php://output’);//輸出到瀏覽器
exit;
}
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(‘緩存刪除失敗’);
}
}
}
thinkphp中phpexcel怎麼使用
首先到phpexcel官網上下載最新的phpexcel類,下周解壓縮一個classes文件夾,裏面包含了PHPExcel.php和PHPExcel的文件夾,這個類文件和文件夾是我們需要的,把classes解壓到你項目的一個目錄中,重名名為phpexcel,開始嘍,(代碼都摘自自帶實例)
?php
require_once ‘./phpexcel/PHPExcel.php’;
// 首先創建一個新的對象 PHPExcel object
$objPHPExcel = new PHPExcel();
// 設置文件的一些屬性,在xls文件——屬性——詳細信息里可以看到這些值,xml表格里是沒有這些值的
$objPHPExcel
-getProperties() //獲得文件屬性對象,給下文提供設置資源
-setCreator( “Maarten Balliauw”) //設置文件的創建者
-setLastModifiedBy( “Maarten Balliauw”) //設置最後修改者
-setTitle( “Office 2007 XLSX Test Document” ) //設置標題
-setSubject( “Office 2007 XLSX Test Document” ) //設置主題
-setDescription( “Test document for Office 2007 XLSX, generated using PHP classes.”) //設置備註
-setKeywords( “office 2007 openxml php”) //設置標記
-setCategory( “Test result file”); //設置類別
// 位置aaa *為下文代碼位置提供錨
// 給表格添加數據
$objPHPExcel-setActiveSheetIndex(0) //設置第一個內置表(一個xls文件里可以有多個表)為活動的
-setCellValue( ‘A1’, ‘Hello’ ) //給表的單元格設置數據
-setCellValue( ‘B2’, ‘world!’ ) //數據格式可以為字符串
-setCellValue( ‘C1’, 12) //數字型
-setCellValue( ‘D2’, 12) //
-setCellValue( ‘D3’, true ) //布爾型
-setCellValue( ‘D4’, ‘=SUM(C1:D2)’ );//公式
//得到當前活動的表,注意下文教程中會經常用到$objActSheet
$objActSheet = $objPHPExcel-getActiveSheet();
// 位置bbb *為下文代碼位置提供錨
// 給當前活動的表設置名稱
$objActSheet-setTitle(‘Simple2222’);
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/304803.html