php查詢及導(dǎo)出excel的方法是什么

這篇文章主要介紹“php查詢及導(dǎo)出excel的方法是什么”,在日常操作中,相信很多人在php查詢及導(dǎo)出excel的方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”php查詢及導(dǎo)出excel的方法是什么”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、懷柔ssl等。為上千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的懷柔網(wǎng)站制作公司

一、PHP查詢數(shù)據(jù)庫(kù)

在PHP中,查詢數(shù)據(jù)庫(kù)并獲取數(shù)據(jù)的過程,需要先連接數(shù)據(jù)庫(kù),然后選擇數(shù)據(jù)庫(kù),最后是執(zhí)行SQL語(yǔ)句。與普通的SQL語(yǔ)句相比,PHP中的SQL語(yǔ)句需要進(jìn)行轉(zhuǎn)義以防止SQL注入攻擊。

連接數(shù)據(jù)庫(kù)的函數(shù)為MySQLi_connect(),包含四個(gè)參數(shù),分別是:主機(jī)名、用戶名、密碼和數(shù)據(jù)庫(kù)名。如果連接失敗會(huì)返回false,否則會(huì)返回一個(gè)數(shù)據(jù)庫(kù)連接對(duì)象。

$conn = mysqli_connect($servername, $username, $password, $dbname);

if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

選擇數(shù)據(jù)庫(kù)的函數(shù)為mysqli_select_db(),包含兩個(gè)參數(shù),分別是:數(shù)據(jù)庫(kù)連接對(duì)象和數(shù)據(jù)庫(kù)名。

mysqli_select_db($conn, $dbname);

執(zhí)行SQL語(yǔ)句的函數(shù)為mysqli_query(),包含兩個(gè)參數(shù),分別是:數(shù)據(jù)庫(kù)連接對(duì)象和SQL語(yǔ)句。

$sql = "SELECT * FROM `table1`";
$result = mysqli_query($conn, $sql);

執(zhí)行完以上三個(gè)步驟,$result對(duì)象將包含所有查詢到的數(shù)據(jù)。

二、PHP導(dǎo)出Excel

PHP導(dǎo)出Excel有多種方法,本文介紹其中一種較為簡(jiǎn)單的方法。處理Excel需要用到PHPExcel庫(kù),需要先安裝該庫(kù)才能進(jìn)行Excel文件的讀寫操作。

可以通過Composer安裝PHPExcel庫(kù):

composer require phpoffice/phpexcel

或者手動(dòng)下載最新版本壓縮包:

https://github.com/PHPOffice/PHPExcel/releases

解壓后將Classes文件夾放到項(xiàng)目目錄中,然后引入PHPExcel庫(kù):

require_once 'Classes/PHPExcel.php';

Excel表格主要是由“工作簿”、“工作表”和“單元格”三個(gè)部分組成。PHPExcel中封裝了很多類和方法,可以輕松地創(chuàng)建、編輯和保存Excel表格。以下是一個(gè)簡(jiǎn)單的例子:

//創(chuàng)建PHPExcel對(duì)象
$objPHPExcel = new PHPExcel();

//設(shè)置工作簿屬性
$objPHPExcel->getProperties()
    ->setCreator("Creator")
    ->setLastModifiedBy("Last Modified By")
    ->setTitle("Title")
    ->setSubject("Subject")
    ->setDescription("Description")
    ->setKeywords("keywords")
    ->setCategory("Category");

//創(chuàng)建工作表
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setTitle('Sheet1');

//添加表頭
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'ID');
$objPHPExcel->getActiveSheet()->setCellValue('B1', 'Name');
$objPHPExcel->getActiveSheet()->setCellValue('C1', 'Age');
$objPHPExcel->getActiveSheet()->setCellValue('D1', 'Gender');

//循環(huán)添加數(shù)據(jù)
$i = 2;
while ($row = mysqli_fetch_assoc($result)) {
    $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, $row['id']);
    $objPHPExcel->getActiveSheet()->setCellValue('B' . $i, $row['name']);
    $objPHPExcel->getActiveSheet()->setCellValue('C' . $i, $row['age']);
    $objPHPExcel->getActiveSheet()->setCellValue('D' . $i, $row['gender']);
    $i++;
}

//設(shè)置列寬度
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(10);

//設(shè)置單元格格式
$objPHPExcel->getActiveSheet()->getStyle('A1:D1')->getFont()->setBold(true);

//將表格導(dǎo)出為Excel文件
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="export.xlsx"');
header('Cache-Control: max-age=0');
$objWriter->save('php://output');
exit;

該例中,先創(chuàng)建了一個(gè)PHPExcel對(duì)象,設(shè)置了工作簿和工作表屬性,添加了表頭和數(shù)據(jù),然后設(shè)置了列寬度和單元格格式。

最后通過PHPExcel_IOFactory類中的createWriter()方法將PHPExcel對(duì)象的數(shù)據(jù)導(dǎo)出為Excel文件。在導(dǎo)出之前需設(shè)置正確的MIME類型、文件名和緩存控制頭。

到此,關(guān)于“php查詢及導(dǎo)出excel的方法是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

當(dāng)前文章:php查詢及導(dǎo)出excel的方法是什么
文章鏈接:http://muchs.cn/article14/ipjhge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、品牌網(wǎng)站設(shè)計(jì)、云服務(wù)器、品牌網(wǎng)站建設(shè)網(wǎng)站收錄、網(wǎng)站建設(shè)

廣告

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

搜索引擎優(yōu)化