如果不清楚ExcelReader的话,请查看 php读取excel类——PHP-ExcelReader
大概的步骤:
1、有个上传文件的php文件
2、有个处理上传文件的php文件
3、一些需要处理的excel 。
第一步:上传的页面文件效果:
相关代码:
<
html
>
< body >
< form action ="example.php" method ="post"
enctype ="multipart/form-data" >
< label for ="file" > Filename: </ label >
< input type ="file" name ="file" id ="file" />
< br />
< input type ="submit" name ="submit" value ="Submit" />
</ form >
</ body >
</ html >
< body >
< form action ="example.php" method ="post"
enctype ="multipart/form-data" >
< label for ="file" > Filename: </ label >
< input type ="file" name ="file" id ="file" />
< br />
< input type ="submit" name ="submit" value ="Submit" />
</ form >
</ body >
</ html >
第二部 需要的处理文件(完成读取并转换成php数据,最后序列化写入缓存)
相关代码:
<
a href
=
'
test.php
'
>
返回
</
a
>
<? php
// Test CVS
if ( $_FILES [ ' file ' ][ ' type ' ] == ' application/vnd.ms-excel ' )
{
if ( $_FILES [ " file " ][ " error " ] > 0 )
{
echo " Error: " . $_FILES [ " file " ][ " error " ] . " <br /> " ;
}
else
{
echo " Upload: " . $_FILES [ " file " ][ " name " ] . " <br /> " ;
echo " Type: " . $_FILES [ " file " ][ " type " ] . " <br /> " ;
echo " Size: " . ( $_FILES [ " file " ][ " size " ] / 1024 ) . " Kb<br /> " ;
echo " Stored in: " . $_FILES [ " file " ][ " tmp_name " ] . " <br /> " ;
}
} else {
echo ' Error: ' . ' FILE TYPE IS NOT TXT DOCUMENT! ' . " <br /> " ;
}
$tArray = explode ( ' . ' , $_FILES [ " file " ][ " name " ]);
$cachedir = ' c:\testWeb\public\phpExcelReader\cache\\ ' ;
$cacheFileName = ' c:\testWeb\public\phpExcelReader\cache\\ ' . $tArray [ 0 ] . ' .txt ' ;
error_reporting ( 0 );
require_once ' Excel/reader.php ' ;
// ExcelFile($filename, $encoding);
$data = new Spreadsheet_Excel_Reader();
// Set output Encoding.
$data -> setOutputEncoding( ' CP936 ' );
$data -> read( ' xls\\ ' . $_FILES [ " file " ][ " name " ]);
$sheetArray [ ' tbody ' ] = array ();
$sheetArray [ ' thead ' ] = array ();
$tempArray = array ();
for ( $i = 1 ; $i <= $data -> sheets[ 0 ][ ' numRows ' ]; $i ++ ) {
$tempArray = array ();
for ( $j = 1 ; $j <= $data -> sheets[ 0 ][ ' numCols ' ]; $j ++ ) {
if ( $i == 1 ){
$sheetArray [ ' thead ' ][ 0 ][][ ' val ' ] = $data -> sheets[ 0 ][ ' cells ' ][ $i ][ $j ] == ' -- ' ? ' - ' : $data -> sheets[ 0 ][ ' cells ' ][ $i ][ $j ];
} else {
$tempArray [] = $data -> sheets[ 0 ][ ' cells ' ][ $i ][ $j ] == ' -- ' ? ' - ' : $data -> sheets[ 0 ][ ' cells ' ][ $i ][ $j ];
}
}
$i == 1 ? '' : $sheetArray [ ' tbody ' ][] = $tempArray ;
}
var_dump ( $sheetArray );
if ( ! is_dir ( $cachedir ))
mkdir ( $cachedir );
$fp = fopen ( $cacheFileName , ' w ' );
if ( $fp ){
echo $cacheFileName . ' <br/> ' ;
fwrite ( $fp , serialize ( $sheetArray ));
fclose ( $fp );
}
?>
<? php
// Test CVS
if ( $_FILES [ ' file ' ][ ' type ' ] == ' application/vnd.ms-excel ' )
{
if ( $_FILES [ " file " ][ " error " ] > 0 )
{
echo " Error: " . $_FILES [ " file " ][ " error " ] . " <br /> " ;
}
else
{
echo " Upload: " . $_FILES [ " file " ][ " name " ] . " <br /> " ;
echo " Type: " . $_FILES [ " file " ][ " type " ] . " <br /> " ;
echo " Size: " . ( $_FILES [ " file " ][ " size " ] / 1024 ) . " Kb<br /> " ;
echo " Stored in: " . $_FILES [ " file " ][ " tmp_name " ] . " <br /> " ;
}
} else {
echo ' Error: ' . ' FILE TYPE IS NOT TXT DOCUMENT! ' . " <br /> " ;
}
$tArray = explode ( ' . ' , $_FILES [ " file " ][ " name " ]);
$cachedir = ' c:\testWeb\public\phpExcelReader\cache\\ ' ;
$cacheFileName = ' c:\testWeb\public\phpExcelReader\cache\\ ' . $tArray [ 0 ] . ' .txt ' ;
error_reporting ( 0 );
require_once ' Excel/reader.php ' ;
// ExcelFile($filename, $encoding);
$data = new Spreadsheet_Excel_Reader();
// Set output Encoding.
$data -> setOutputEncoding( ' CP936 ' );
$data -> read( ' xls\\ ' . $_FILES [ " file " ][ " name " ]);
$sheetArray [ ' tbody ' ] = array ();
$sheetArray [ ' thead ' ] = array ();
$tempArray = array ();
for ( $i = 1 ; $i <= $data -> sheets[ 0 ][ ' numRows ' ]; $i ++ ) {
$tempArray = array ();
for ( $j = 1 ; $j <= $data -> sheets[ 0 ][ ' numCols ' ]; $j ++ ) {
if ( $i == 1 ){
$sheetArray [ ' thead ' ][ 0 ][][ ' val ' ] = $data -> sheets[ 0 ][ ' cells ' ][ $i ][ $j ] == ' -- ' ? ' - ' : $data -> sheets[ 0 ][ ' cells ' ][ $i ][ $j ];
} else {
$tempArray [] = $data -> sheets[ 0 ][ ' cells ' ][ $i ][ $j ] == ' -- ' ? ' - ' : $data -> sheets[ 0 ][ ' cells ' ][ $i ][ $j ];
}
}
$i == 1 ? '' : $sheetArray [ ' tbody ' ][] = $tempArray ;
}
var_dump ( $sheetArray );
if ( ! is_dir ( $cachedir ))
mkdir ( $cachedir );
$fp = fopen ( $cacheFileName , ' w ' );
if ( $fp ){
echo $cacheFileName . ' <br/> ' ;
fwrite ( $fp , serialize ( $sheetArray ));
fclose ( $fp );
}
?>