中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

PHPexcel導入導出的簡單使用

2023-03-18    分類: 網(wǎng)站建設(shè)

使用php的時候一定會遇到表格導入導出的功能吧,這里簡單來解釋一下PHP中PHPExcel的使用如何來導入導出數(shù)據(jù)。

首先要去PHPExcel官網(wǎng)下載
這是我項目中的phpexcel類庫
先說一下導入 主要是要通過文件上傳,然后獲取到這個上傳的文件 然后可以用PHPExcel的方法去讀取文件的內(nèi)容 并返回一個數(shù)組,然后拼裝你要的數(shù)據(jù)進行數(shù)據(jù)庫操作
這里我用的封裝好的方法去讀取的excel文件的數(shù)據(jù)
$filename文件的地址 需要一個相對路徑
$begin 從第幾行開始讀取 (這里一般是第二行 第一行基本是內(nèi)容的標題或者描述)

$allColumn數(shù)據(jù)最后一列的字母 比如第G列是最后的數(shù)據(jù)列 就傳G
封裝方法:
function excelImport($filename, $begin,$allColumn) {
Vendor('PHPExcel.PHPExcel');
//建立reader對象
$PHPReader = new PHPExcel_Reader_Excel2007();
if (!$PHPReader->canRead($filename)) {
$PHPReader = new PHPExcel_Reader_Excel5();
if (!$PHPReader->canRead($filename)) {
return array();
}
}
//建立excel對象,此時你即可以通過excel對象讀取文件,也可以通過它寫入文件
$PHPExcel = $PHPReader->load($filename);
/* * 讀取excel文件中的第一個工作表 */
$currentSheet = $PHPExcel->getSheet(0);
/* * 取得大的列號 */
// $allColumn = $currentSheet->getHighestColumn();
/* * 取得一共有多少行 */
$allRow = $currentSheet->getHighestRow();
$returnCell = '';
//循環(huán)讀取每個單元格的內(nèi)容。注意行從1開始,列從A開始
for ($rowIndex = $begin; $rowIndex <= $allRow; $rowIndex++) {
for ($colIndex = 'A'; $colIndex <= $allColumn; $colIndex++) {
$addr = $colIndex . $rowIndex;
$cell = $currentSheet->getCell($addr)->getValue();
if ($cell instanceof PHPExcel_RichText) {
//富文本轉(zhuǎn)換字符串
$returnCell[$rowIndex][$colIndex] = $cell->__toString();
} else {
$returnCell[$rowIndex][$colIndex] = $cell;
}
}
}
return $returnCell;

}

讀取后會輸出一個數(shù)組,如下

獲取到數(shù)據(jù)后使用循環(huán)取出里面的數(shù)據(jù) 完成后清空了一下數(shù)據(jù)數(shù)組
這是簡單兩列數(shù)據(jù)的導入 .
再來說一下導出
我也是使用的PHPExcel

這里是先創(chuàng)建一個表格第一行的標題數(shù)組和導出的文件名稱

一個一維數(shù)組鍵名要對應(yīng)表格列的字母
下面是要拼裝導出數(shù)據(jù)

這是一個二維數(shù)組 需要 每行對應(yīng)響應(yīng)的列的字母
這里給了一個key值來確定數(shù)據(jù)是從第幾行開始寫入的

因為有標題的存在所以是從第二行開始如正式數(shù)據(jù),
使用下面這個封裝的導出方法進行導出 ,會自動使用瀏覽器下載你要導出的表格
這里也封裝了一個導出的方法
/**
* 導出成Excel文件
* @param type $filename 文件名
* @param type $data_title 頭部字段
* @param type $data_content 內(nèi)容
* @param type $Sheet1
* @param type $save_to_file 是否保存成文件,true保存
* @param type $save_path 文件保存路徑
*/
function excelExport($filename, $data_title, $data_content, $Sheet1 = "Sheet1", $save_to_file = false, $save_path = './Static/File/') {
Vendor('PHPExcel.PHPExcel');
//PHPExcel支持讀模版 所以我還是比較喜歡先做好一個Excel的模版 比較好,不然要寫很多代碼 模版我放在根目錄了
//創(chuàng)建一個對象
$objPHPExcel = new PHPExcel();
$objPHPExcel->getProperties()->setCreator("qiandai");
//獲取當前活動的表
$objActSheet = $objPHPExcel->setActiveSheetIndex(0);
$objActSheet->setTitle($Sheet1); //工作表標簽
foreach ($data_title as $data_title_key => $data_title_value) {//寫入文件表頭內(nèi)容
$objActSheet->setCellValue($data_title_key.'1', $data_title_value);
$objPHPExcel->getActiveSheet()->getColumnDimension($data_title_key)->setWidth(30);//設(shè)置列的寬度
}
//現(xiàn)在就開始填充數(shù)據(jù)了 (從數(shù)據(jù)庫中) $data_content
foreach ($data_content as $data_content_value) {//寫入 文件內(nèi)容
foreach ($data_content_value as $data_content_key => $data_content_value2) {
$objActSheet->setCellValue($data_content_key, $data_content_value2);
}
}
//導出
header('Content-Type: application/vnd.ms-excel;charset=utf-8');
header('Content-Disposition: attachment;filename="' . $filename . '.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
if ($save_to_file) {
$objWriter->save($save_path . $filename);
} else {
$objWriter->save('php://output');
exit;
}
}
如果有什么方法不清楚或者想修改表格的其他設(shè)置的可以去查看手冊進行添加。

網(wǎng)站題目:PHPexcel導入導出的簡單使用
文章轉(zhuǎn)載:http://www.rwnh.cn/news24/245424.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、App設(shè)計、全網(wǎng)營銷推廣、響應(yīng)式網(wǎng)站、做網(wǎng)站、微信公眾號

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
龙里县| 南康市| 原阳县| 嘉善县| 梓潼县| 两当县| 灌云县| 中牟县| 平江县| 乐昌市| 昌邑市| 青冈县| 封丘县| 罗定市| 宜昌市| 门头沟区| 吉木萨尔县| 子洲县| 嘉峪关市| 西和县| 杭锦旗| 方山县| 万宁市| 惠来县| 银川市| 紫云| 钦州市| 文昌市| 二连浩特市| 花莲县| 仁布县| 化德县| 武汉市| 和田县| 曲阜市| 嘉鱼县| 珲春市| 临海市| 靖边县| 喀什市| 江油市|