$handle = fopen($_FILES[importfile][tmp_name],"r");
成都創(chuàng)新互聯(lián)公司服務項目包括廣饒網(wǎng)站建設、廣饒網(wǎng)站制作、廣饒網(wǎng)頁制作以及廣饒網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網(wǎng)行業(yè)的解決方案,廣饒網(wǎng)站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到廣饒省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!
while($items = fgetcsv($handle,1000," ")){
var_dump($items);
}
這個是我讀取EXCEL上傳的文件用的,按行讀取,但是你的Excel必須是二進制格式的自己琢磨一下吧,網(wǎng)上搜索很多的
用 php Win32 OLE
##Using OLE;
read('Book1.xls');
// print number of rows, columns and sheets
echo "Number of sheets: " . sizeof($excel-sheets) . "\n";
for ($x=0; $xsheets); $x++) {
echo "Number of rows in sheet " . ($x+1) . ": " . $excel-sheets[$x]["numRows"] . "\n";
echo "Number of columns in sheet " . ($x+1) . ": " . $excel-sheets[$x]["numCols"] . "\n";
PHPExcel
PHPExcel?是用來操作Office Excel 文檔的一個PHP類庫,它基于微軟的OpenXML標準和PHP語言??梢允褂盟鼇碜x取、寫入不同格式的電子表格,如 Excel (BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsx, CSV, Libre/OpenOffice Calc .ods, Gnumeric, PDF, HTML等等。
PHP讀取示例代碼
//獲取上傳的excel臨時文件
$path?=?$_FILES["file"]["tmp_name"];
//將臨時文件移動當前目錄,可自定義存儲位置
move_uploaded_file($_FILES["file"]["tmp_name"],$_FILES["file"]["name"]);
//將獲取在服務器中的Excel文件,此處為上傳文件名
$path?=?$_FILES["file"]["name"];
//調用readExcel函數(shù)返回一個
二維數(shù)組
$exceArray?=?readExcel($path);
//創(chuàng)建一個讀取
excel函數(shù)
function?readExcel($path){
//引入PHPExcel類庫
include?'Classes/PHPExcel.php';????????????
include?'Classes/PHPExcel/IOFactory.php';
$type?=?'Excel5';//設置為Excel5代表支持2003或以下版本,
Excel2007代表2007版
$xlsReader?=?\PHPExcel_IOFactory::createReader($type);??
$xlsReader-setReadDataOnly(true);
$xlsReader-setLoadSheetsOnly(true);
$Sheets?=?$xlsReader-load($path);
//開始讀取上傳到服務器中的Excel文件,返回一個
二維數(shù)組
$dataArray?=?$Sheets-getSheet(0)-
toArray();
return?$dataArray;
}
php有個PHPExcel擴展,是可以實現(xiàn)你的要求的。
我這里有個可以讀取多個工作薄的自定義excel類,試試看:
?php
/**
*excel.class.php
*/
class Excel
{
/**
* 從excel文件中取得所有數(shù)據(jù)。并轉換成指定編碼格式。
* $toCode 表示需要轉換成的編碼格式,目前擴充了utf8,gbk2312,html三種格式。
* @return 返回二維數(shù)組。
*/
static function getDataFromExl($filePath,$toCode = "utf8")
{
$fh = @fopen($filePath,'rb');
if( !$fh || filesize($filePath)==0 )
{
return -1; //文件不可讀或者為空
}
$fc = fread( $fh, filesize($filePath) );
@fclose($fh);
if( strlen($fc) filesize($filePath) )
{
return -2; //讀取錯誤
}
$exc = new ExcelFileParser();
$res = $exc-ParseFromString($fc);
$ws_number = count($exc-worksheet['name']);//取得工作薄數(shù)量
if( $ws_number 1 )
{
return -3;
}
for ($ws_n = 0; $ws_n $ws_number; $ws_n++)
{
$ws = $exc - worksheet['data'][$ws_n];
$data = $ws['cell'];
foreach($data as $k=$v) //一行數(shù)據(jù)
{
$row = null;
foreach($v as $a=$d) //一行數(shù)據(jù)的一個字節(jié)
{
$value = null;
if(count($d) == 1)
{
continue;
}
if($d['type'] == 0) //如果是字符類型則轉換成為指定編碼格式
{
$ind = $d['data'];
if( $exc-sst['unicode'][$ind] ) //返回數(shù)據(jù)編碼格式
{
switch($toCode)
{
case "utf8":
$s = Strings::uc2utf8($exc-sst['data'][$ind]);
break;
case "gbk":
$s = Strings::uc2gbk($exc-sst['data'][$ind]);
break;
case "html":
$s = Strings::uc2html($exc-sst['data'][$ind]);
break;
default:
$s = Strings::uc2utf8($exc-sst['data'][$ind]);
break;
}
}
else
{
$s = $exc-sst['data'][$ind];
}
if( strlen(trim($s))==0 || $s === null )
{
$value = '';
}
else
{
$value = $s;
}
}
elseif($d['type'] == 3)
{
$time_list = explode('.', $d['data']);
$time_format = $time_list[2].'-'.$time_list[0].'-'.$time_list[1];
$timestamp = strtotime($time_format);
$value = date("Y-m-d H:i:s", $timestamp);
}
else
{
$value = $d['data'];
}
$row[$a] = $value;
}
$recordList[] = $row;
}
}
return $recordList;
}
}
require_once('./excel.class.php');
$emailData = Excel::getDataFromExl($_FILES['file_name']['tmp_name']);
推薦用“PHPExcel”,下載地址“
”,以下是
壓縮包
中的“文檔目錄”和“截圖”![[i]
本帖最后由
cmttp
于
2008-6-27
03:22
編輯
[/i]]