使用PHP来生成Excel的方法有很多,比如使用最简单的回车符,制表符来生成,或者直接使用html 的table格式,但这些方式兼容性都有所欠缺。测试了一下PHPExce类,发现太l强大了,可以输出非常复杂的excel表格,另外说一下还可以读取 Excel文件。闲话少说,放出简要代码:
<?php
require_once './Classes/PHPExcel.php'; $objExcel = new PHPExcel(); $objWriter = new PHPExcel_Writer_Excel5($objExcel); // 用于其他版本格式 $objExcel->setActiveSheetIndex(0); $objActSheet = $objExcel->getActiveSheet(); //设置当前活动sheet的名称 $objActSheet->setTitle('sheet1'); $objActSheet->setCellValue('A2', '中国11'); // 设置Excel中的内容 A2表示坐标 //生成excel到文件 //$objWriter->save('./test.xls'); //或者直接浏览器下载 (任选其一) $outputFileName = "output.xls"; header("Content-Type:application/octet-stream;charset=utf-8"); header('Content-Disposition: attachment; filename=' . $outputFileName); $objWriter->save('php://output'); ?>另外还可以读取Excel文件,示例代码
- <?php
- $xlsPath = './test.xls'; //指定要读取的exls路径
- //$type = 'Excel2007'; //设置要解析的Excel类型 Excel5(2003或以下版本)或Excel2007
- $type = 'Excel5';
- //引入excel类
- include 'Classes/PHPExcel.php';
- include 'Classes/PHPExcel/IOFactory.php';
- $xlsReader = PHPExcel_IOFactory::createReader($type);
- $xlsReader->setReadDataOnly(true);
- $xlsReader->setLoadSheetsOnly(true);
- $Sheets = $xlsReader->load($xlsPath);
- //开始读取
- $Sheet = $Sheets->getSheet(0)->toArray(); //读取第一个工作表(注意编号从0开始) 如果读取多个可以做一个循环0,1,2,3....
- //得到二维数组,每个小数组是excel表格内容的一行 里面包含此行的每列的数据
- echo '<pre>';
- print_r($Sheet);
- ?>
下面给出示例文件以及Excel类