<?php header ( "Content-Type:text/html;charset=utf-8" ); require_once 'excel_reader2.php'; // 创建对象 $data = new Spreadsheet_Excel_Reader (); // 设置文本输出编码 $data->setOutputEncoding ( 'UTF-8' ); // 读取Excel文件 $data->read ( "e.xls" ); // $data->sheets[0]['numRows']为Excel行数 for($i = 1; $i <= $data->sheets [0] ['numRows']; $i ++) { // $data->sheets[0]['numCols']为Excel列数 for($j = 1; $j <= $data->sheets [0] ['numCols']; $j ++) { // 显示每个单元格内容 // echo $data->sheets[0]['cells'][$i][$j].' '; $arr [$i] ['id'] = $data->sheets [0] ['cells'] [$i] [1]; // $arr[$i]['idcard']=$data->sheets[0]['cells'][$i][2]; $arr[$i]['stuno']=$data->sheets[0]['cells'][$i][3]; // $arr [$i] ['name'] = $data->sheets [0] ['cells'] [$i] [4]; $arr [$i] ['dept'] = $data->sheets [0] ['cells'] [$i] [5]; $arr [$i] ['major'] = $data->sheets [0] ['cells'] [$i] [6]; $arr [$i] ['class'] = $data->sheets [0] ['cells'] [$i] [7]; } /* * exit(); echo '<br>'; */ } print_r ( $arr ); ?>
PHP5.3以上运行会报错
Deprecated: Assigning the return value of new by reference is deprecated in E:\WWW\excel_reader2.php on line 916
第79行、844行split改为explode
乱码解决:
将第635行改为:
$val = htmlspecialchars($val);
example.php改为:
$data = new Spreadsheet_Excel_Reader("2015.xls",true,"UTF-8");
解决方案:将916行
$this->_ole =& new OLERead();
改为
$this->_ole = new OLERead();
<?php header ( "content-type:text/html;charset=utf-8" ); /** * Error reporting */ error_reporting ( E_ALL ); /** * PHPExcel */ include_once './Classes/PHPExcel.php'; /** * PHPExcel_Writer_Excel2003用于创建xls文件 */ include_once './Classes/PHPExcel/Writer/Excel5.php'; // Create new PHPExcel object $objPHPExcel = new PHPExcel (); // Set properties $objPHPExcel->getProperties ()->setCreator ( "RT" ); $objPHPExcel->getProperties ()->setLastModifiedBy ( "RT" ); $objPHPExcel->getProperties ()->setTitle ( "Office 2007 XLSX Test Document" ); $objPHPExcel->getProperties ()->setSubject ( "Office 2007 XLSX Test Document" ); $objPHPExcel->getProperties ()->setDescription ( "Test document for Office 2007 XLSX, generated using PHP classes." ); // Add some data $objPHPExcel->setActiveSheetIndex ( 0 ); $objPHPExcel->getActiveSheet ()->SetCellValue ( 'A1', 'Date' ); // 合并单元格: $objPHPExcel->getActiveSheet ()->mergeCells ( 'B1:F1' ); $objPHPExcel->getActiveSheet ()->SetCellValue ( 'B1', 'CSAT Score' ); $objPHPExcel->getActiveSheet ()->SetCellValue ( 'G1', 'Grand Total' ); $objPHPExcel->getActiveSheet ()->SetCellValue ( 'H1', 'CSAT' ); $objPHPExcel->getActiveSheet ()->SetCellValue ( 'A2', '08/01/11' ); $objPHPExcel->getActiveSheet ()->SetCellValue ( 'B2', '0' ); $objPHPExcel->getActiveSheet ()->SetCellValue ( 'C2', '0' ); $objPHPExcel->getActiveSheet ()->SetCellValue ( 'D2', '0' ); $objPHPExcel->getActiveSheet ()->SetCellValue ( 'E2', '0' ); $objPHPExcel->getActiveSheet ()->SetCellValue ( 'F2', '0' ); $objPHPExcel->getActiveSheet ()->SetCellValue ( 'G2', '0' ); $objPHPExcel->getActiveSheet ()->SetCellValue ( 'H2', '0%' ); $objPHPExcel->getActiveSheet ()->SetCellValue ( 'A3', '08/01/11' ); $objPHPExcel->getActiveSheet ()->SetCellValue ( 'B3', '武汉' ); $objPHPExcel->getActiveSheet ()->SetCellValue ( 'C3', '湖北' ); $objPHPExcel->getActiveSheet ()->SetCellValue ( 'D3', '洪湖' ); $objPHPExcel->getActiveSheet ()->SetCellValue ( 'E3', '0' ); $objPHPExcel->getActiveSheet ()->SetCellValue ( 'F3', '0' ); $objPHPExcel->getActiveSheet ()->SetCellValue ( 'G3', '0' ); $objPHPExcel->getActiveSheet ()->SetCellValue ( 'H3', '0%' ); $objPHPExcel->getActiveSheet ()->SetCellValue ( 'A4', '08/01/11' ); $objPHPExcel->getActiveSheet ()->SetCellValue ( 'B4', '0' ); $objPHPExcel->getActiveSheet ()->SetCellValue ( 'C4', '0' ); $objPHPExcel->getActiveSheet ()->SetCellValue ( 'D4', '0' ); $objPHPExcel->getActiveSheet ()->SetCellValue ( 'E4', '0' ); $objPHPExcel->getActiveSheet ()->SetCellValue ( 'F4', '0' ); $objPHPExcel->getActiveSheet ()->SetCellValue ( 'G4', '0' ); $objPHPExcel->getActiveSheet ()->SetCellValue ( 'H4', '0%' ); // Rename sheet // $objPHPExcel->getActiveSheet()->setTitle('Csat'); // Save Excel 2007 file // $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $d = date ( 'Y-m-d' ); $objWriter = new PHPExcel_Writer_Excel5 ( $objPHPExcel ); $objWriter->save ( str_replace ( '.php', '.xls', __FILE__ ) ); header ( "Pragma: public" ); header ( "Expires: 0" ); header ( "Cache-Control:must-revalidate,post-check=0,pre-check=0" ); header ( "Content-Type:application/force-download" ); header ( "Content-Type:application/vnd.ms-execl" ); header ( "Content-Type:application/octet-stream" ); header ( "Content-Type:application/download" ); header ( "Content-Disposition:attachment;filename=" . $d . ".xls" ); header ( "Content-Transfer-Encoding:binary" ); $objWriter->save ( "php://output" ); ?>
<?php /** * Created by PhpStorm. * User: Administrator * Date: 2015/1/9 * Time: 15:30 */ require_once './Classes/PHPExcel.php'; /**对excel里的日期进行格式转化*/ function GetData($val) { $jd = GregorianToJD(1, 1, 1970); $gregorian = JDToGregorian($jd + intval($val) - 25569); return $gregorian; /**显示格式为 “月/日/年” */ } $filePath = 'test.xls'; $PHPExcel = new PHPExcel(); /**默认用excel2007读取excel,若格式不对,则用之前的版本进行读取*/ $PHPReader = new PHPExcel_Reader_Excel2007(); if (!$PHPReader->canRead($filePath)) { $PHPReader = new PHPExcel_Reader_Excel5(); if (!$PHPReader->canRead($filePath)) { echo 'no Excel'; return; } } $PHPExcel = $PHPReader->load($filePath); /**读取excel文件中的第一个工作表*/ $currentSheet = $PHPExcel->getSheet(0); /**取得最大的列号*/ $allColumn = $currentSheet->getHighestColumn(); /**取得一共有多少行*/ $allRow = $currentSheet->getHighestRow(); echo $currentSheet->getCellByColumnAndRow('B', 1)->getValue(); return; //$PHPExcel->getActiveSheet()->mergeCells('B6:C6'); //合并单元格 $PHPExcel->getActiveSheet()->setCellValue('C7','更改后的值'); $PHPExcel->getProperties()->setCreator("xuhua"); /**从第二行开始输出,因为excel表中第一行为列名*/ for ($currentRow = 1; $currentRow <= $allRow; $currentRow++) { /**从第A列开始输出*/ for ($currentColumn = 'A'; $currentColumn <= $allColumn; $currentColumn++) { $val = $currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65, $currentRow)->getValue(); /**ord()将字符转为十进制数*/ if ($currentColumn == 'A') { echo $val . "\t"; } else { //echo $val; /**如果输出汉字有乱码,则需将输出内容用iconv函数进行编码转换,如下将gb2312编码转为utf-8编码输出*/ echo $val . "\t"; } } echo "<hr>"; } ?>