讀取內(nèi)容一般使用select語(yǔ)句,輸出的話方法比較多,具體的可以參考網(wǎng)上的教程,根據(jù)自己的實(shí)際需要來(lái)選用其中一種,一般都是把數(shù)據(jù)讀取到一個(gè)數(shù)組參數(shù)里面,然后再輸出這個(gè)數(shù)組內(nèi)容。具體的可以參考下w3school的教程:
創(chuàng)新互聯(lián)主營(yíng)二七網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,app軟件開(kāi)發(fā)公司,二七h(yuǎn)5微信小程序搭建,二七網(wǎng)站營(yíng)銷(xiāo)推廣歡迎二七等地區(qū)企業(yè)咨詢
試編寫(xiě)代碼如下:
?php
//從數(shù)據(jù)庫(kù)根據(jù)?id?獲取顏色
function?getColor($db,?$id)
{
if?($result?=?$db-query("SELECT?*?FROM?color?where?id='"?.?$id?.?"'"))
{
$row?=?$result-fetch_assoc();
return?$row['color'];
}
return?'#000000';
}
$mysqli?=?new?mysqli("localhost",?"test",?"test",?"room");
if?($mysqli-connect_error)?{
printf("數(shù)據(jù)庫(kù)連接錯(cuò)誤:?%s\n",?mysqli_connect_error());
exit();
}
?
table?border="1"?cellspacing="0"
tr
td?bgcolor="?php?echo?getColor($mysqli,'1')?"1/td
/tr
tr
td?bgcolor="?php?echo?getColor($mysqli,'2')?"2/td
/tr
tr
td?bgcolor="?php?echo?getColor($mysqli,'3')?"3/td
/tr
/table
?php
$mysqli-close();
?
常用的用PHP讀取EXCEL的方法有以下三種,各自有各自的優(yōu)缺點(diǎn)。個(gè)人推薦用第三種方法,因?yàn)樗梢钥缙脚_(tái)使用。
1. 以.csv格式讀取
將.xls轉(zhuǎn)換成.csv的文本格式,然后再用PHP分析這個(gè)文件,和PHP分析文本沒(méi)有什么區(qū)別。
優(yōu)點(diǎn):跨平臺(tái),效率比較高、可以讀寫(xiě)。
缺點(diǎn):只能直接使用.csv的文件,如果經(jīng)常接受.xls二進(jìn)制文件的話需要手工轉(zhuǎn)換,不能自動(dòng)化。一個(gè)文件只有一個(gè)SHEET。
PHP有自帶的分析.csv函數(shù):fgetcsv
array fgetcsv ( int $handle [, int $length [, string $delimiter [, string $enclosure]]] )
handle 一個(gè)由 fopen()、popen() 或 fsockopen() 產(chǎn)生的有效文件指針。
length (可選)必須大于 CVS 文件內(nèi)最長(zhǎng)的一行。在 PHP 5 中該參數(shù)是可選的。如果忽略(在 PHP 5.0.4 以后的版本中設(shè)為 0)該參數(shù)的話,那么長(zhǎng)度就沒(méi)有限制,不過(guò)可能會(huì)影響執(zhí)行效率。
delimiter (可選)設(shè)置字段分界符(只允許一個(gè)字符),默認(rèn)值為逗號(hào)。
enclosure (可選)設(shè)置字段環(huán)繞符(只允許一個(gè)字符),默認(rèn)值為雙引號(hào)。該參數(shù)是在 PHP 4.3.0 中添加的。 和 fgets() 類(lèi)似,只除了 fgetcsv() 解析讀入的行并找出 CSV 格式的字段然后返回一個(gè)包含這些字段的數(shù)組。
fgetcsv() 出錯(cuò)時(shí)返回 FALSE,包括碰到文件結(jié)束時(shí)。
注意: CSV 文件中的空行將被返回為一個(gè)包含有單個(gè) null 字段的數(shù)組,不會(huì)被當(dāng)成錯(cuò)誤。
當(dāng)然也可以自己手動(dòng)分析字符串。
還可以利用fputcsv函數(shù)將行格式化為 CSV 并寫(xiě)入文件指針。
2. ODBC鏈接數(shù)據(jù)源
優(yōu)點(diǎn):支持多種格式,cvs, xls等。支持讀寫(xiě),使用標(biāo)準(zhǔn)SQL語(yǔ)言,和SQLSERVER、MYSQL數(shù)據(jù)庫(kù)幾乎完全一樣。
缺點(diǎn):值支持windows服務(wù)器
3. PHP自定義類(lèi)
優(yōu)點(diǎn):跨平臺(tái)。某些類(lèi)支持寫(xiě)操作。支持.xls二進(jìn)制文件
常用的類(lèi)有phpExcelReader、PHPExcel。其中后者支持讀寫(xiě),但是需要php5.2以上版本。
phpExcelReader是專(zhuān)門(mén)用來(lái)讀取文件的。返回一個(gè)數(shù)組,包含表格的所有內(nèi)容。
該 class 使用的方法可以參考網(wǎng)站下載回來(lái)的壓縮檔中的 example.php。
不過(guò)我下載回來(lái)的 (版本 2009-03-30),有兩點(diǎn)要注意:
reader.php 中的下面這行要修改
將 require_once ‘Spreadsheet/Excel/Reader/OLERead.php’;
改為 require_once ‘oleread.inc’;
example.php 中
修改 $data-setOutputEncoding(’CP1251′);
為 $data-setOutputEncoding(’CP936′);
example2.php 中
修改 nl2br(htmlentities($data-sheets[$sheet]['cells'][$row][$col]));
為 $table_output[$sheet] .= nl2br(htmlspecialchars($data-sheets[$sheet]['cells'][$row][$col]));
不然中文會(huì)有問(wèn)題。
繁體的話可以修改為CP950、日文是CP932,具體可參考codepage說(shuō)明。
修改 $data-read(’jxlrwtest.xls’) 為自己的 excel 文件名,zip 檔中附的 jxlrwtest.xls 應(yīng)該是壞了。