凤凰平台注册开户_凤凰彩票app下载安装_凤凰彩票投注网

热门关键词: 凤凰平台注册开户,凤凰彩票app下载安装,凤凰彩票投注网

PHPExcel生成和读取Excel文件实例程序

作者: 编程知识  发布:2019-11-24

本文实例讲述了PHP中使用PHPExcel读写excel文件的方法,非常实用。分享给大家供大家参考之用。具体方法如下:

PHPExcel是一个PHP类库,用来帮助我们简单、高效实现从Excel读取Excel的数据和导出数据到Excel。也是我们日常开发中,经常会遇到的使用场景。比如有个客户信息表,要批量导出发给同事,我们就可以用PHPExcel来快速实现。同样,如果我们要利用短信群发接口去群发信息,PHPExcel可以快速导入客户信息,避免人工录入信息的麻烦。

在网站的管理后台经常会使用到报表的生成和读取,CSV和Excel都是常用的报表格式,CSV相对来说比较简单,如果大家有疑问我会相继发布一些CSV的实例,这里主要介绍用PHP 来生成和读取Excel文件。

很多PHP类库在读取中文的xls、csv文件时会有问题,网上找了下资料,发现PHPExcel类库好用,官网地址为:

PHPExcel使用教程:

要执行下面的函数,首先要引入一个类库:PHPExcel,PHPExcel是一个强大的PHP类库,用来读写不同的文件格式,比如说Excel 2007,PDF格式,HTML格式等等,这个类库是建立在Microsoft's OpenXML和PHP 的基础上的,对Excel提供的强大的支持,比如设置工作薄,字体样式,图片以及边框等等,下面来看看它是如何读写Excel文件的:

1、读取xls文件内容

首先下载PHPExcel

首先来看如果生成Excel文件:
下面这代码中函数arrayToExcel的功能是把一个二维数组的数据生成一个凤凰彩票app下载安装,excel文件,并且保存在服务器上。

getProperties // ->setLastModifiedBy // ->setTitle // ->setSubject // ->setDescription // ->setKeywords; $objPHPExcel->setActiveSheetIndex; $cols = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; //设置www.jb51.net标题 for($i=0,$length=count; $igetActiveSheet()->setCellValue($cols{$i}.'1', $title[$i]); } //设置标题样式 $titleCount = count; $r = $cols{0}.'1'; $c = $cols{$titleCount}.'1'; $objPHPExcel->getActiveSheet->applyFromArray( array( 'font' => array, 'alignment' => array( 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_RIGHT, ), 'borders' => array( 'top' => array( 'style' => PHPExcel_Style_Border::BORDER_THIN ) ), 'fill' => array( 'type' => PHPExcel_Style_Fill::FILL_GRADIENT_LINEAR, 'rotation' => 90, 'startcolor' => array( 'argb' => 'FFA0A0A0' ), 'endcolor' => array( 'argb' => 'FFFFFFFF' ) ) ) ); $i = 0; foreach { //这里用foreach,支持关联数组和数字索引数组 $j = 0; foreach { //这里用foreach,支持关联数组和数字索引数组 $objPHPExcel->getActiveSheet()->setCellValue; $j++; } $i++; } // 生成2003excel格式的xls文件 header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="'.$filename.'.xls"'); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save; } $array = array( array(1111,'名称','品牌','商品名','//www.jb51.net'), array(1111,'名称','品牌','商品名','//www.jb51.net'), array(1111,'名称','品牌','商品名','//www.jb51.net'), array(1111,'名称','品牌','商品名','//www.jb51.net'), array(1111,'名称','品牌','商品名','//www.jb51.net'), ); write_xls($array,array('商品id','供应商名称','品牌','商品名','URL'),'report'); ?>

 代码如下

2、向xls文件写内容

下载好文件,解压可以得到如下文件:

require_once 'Classes/PHPExcel/Reader/Excel2007.php';
require_once 'Classes/PHPExcel/Reader/Excel5.php';
include 'Classes/PHPExcel/IOFactory.php';
function arrayToExcel($data){
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setTitle('firstsheet');
$objPHPExcel->getDefaultStyle()->getFont()->setName('Arial');
$objPHPExcel->getDefaultStyle()->getFont()->setSize(10);
//add data
$i = 2;
foreach ($data as $line){
$objPHPExcel->getActiveSheet()->setCellValue('A'.$i, $line['From']);
$objPHPExcel->getActiveSheet()->getCell('A'.$i)->setDataType('n');
$objPHPExcel->getActiveSheet()->setCellValue('B'.$i, $line['To']);
$objPHPExcel->getActiveSheet()->getCell('B'.$i)->setDataType('n');
$i++;
}
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$file = 'excel.xls';
$objWriter->save($file);
}

'mysql', 'DB_HOST'=>'localhost', 'DB_NAME'=>'test', 'DB_USER'=>'root', 'DB_PWD'=>'root', 'DB_PORT'=>'3306', ); function getProductIdByName { global $config; $id = false; $mysqli = new mysqli($config['DB_HOST'], $config['DB_USER'], $config['DB_PWD'], $config['DB_NAME']); if(mysqli_connect_error { //兼容 < php5.2.9 OO way:$mysqli->connect_error die("连接失败,错误码:".mysqli_connect_errno()."错误信息:".mysqli_connect_error; } //设置连接数据库的编码,不要忘了设置 $mysqli->set_charset; //中文字符的编码要与数据库一致,若没设置,结果为null $name = iconv("utf-8", "gbk//IGNORE", $name); if($mysqli_stmt = $mysqli->prepare("select id from 137_product where name like ?")) { $mysqli_stmt->bind_param; $mysqli_stmt->execute(); $mysqli_stmt->bind_result; $mysqli_stmt->fetch(); $mysqli_stmt->close; return $id; //得到的是gbk码 } $id = getProductIdByName; var_dump;?>

好了,现在我们就可以用PHPExcel愉快的读取和制作表格了!

如果你不希望保存在服务器上,希望生成以后直接下载到客户端,可以在输出文件的时候加入下面的代码,而不使用 $objWriter->save($file);

希望本文所述对大家的PHP程序设计有所帮助

PHPExcel DEMO1:利用PHPExcel读取excel信息:

 代码如下

我们在根目录创建一个名为read.php的文件来读取文档,创建一个test.xlsx的文件,里面写的信息如下:

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="excel.xls"');
header("Content-Transfer-Encoding:binary");
$objWriter->save('php://output');

然后在read.php写以下代码:

接下来看一个读取Excel文件内容的实例:
下面这代码中函数excelToArray的功能是把一个excel里的内容重新整理放到一个数组了。

load;} catch {die(‘加载文件发生错误:”‘.pathinfo($inputFileName,PATHINFO_BASENAME).'”: ‘.$e->getMessage;}// 确定要读取的sheet,什么是sheet,看excel的右下角,真的不懂去百度吧$sheet = $objPHPExcel->getSheet;$highestRow = $sheet->getHighestRow();$highestColumn = $sheet->getHighestColumn();// 获取一行的数据for ($row = 1; $row <= $highestRow; $row++){// Read a row of data into an array$rowData = $sheet->rangeToArray(‘A' . $row . ‘:' . $highestColumn . $row, NULL, TRUE, FALSE);//这里得到的rowData都是一行的数据,得到数据后自行处理,我们这里只打出来看看效果var_dump;echo “
”;}

 代码如下

PHPexcel读取文件

require_once 'Classes/PHPExcel.php';
require_once 'Classes/PHPExcel/IOFactory.php';
function excelToArray($file){
$objReader = PHPExcel_IOFactory::createReader('Excel5');
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load($file);
$objWorksheet = $objPHPExcel->getActiveSheet();
$highestRow = $objWorksheet->getHighestRow();
$highestColumn = $objWorksheet->getHighestColumn();
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
$excelData = array();
for ($row = 2; $row <= $highestRow; ++$row) {
for ($col = 0; $col <= $highestColumnIndex; ++$col) { $excelData[$row][] = $objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
}
}
return $excelData;
}

PHPExcel DEMO2:利用PHPExcel导出信息到excel:

精简办法

getProperties()->setCreator ->setLastModifiedBy ->setTitle ->setSubject ->setDescription ->setKeywords ->setCategory;//根据excel坐标,添加数据$objPHPExcel->setActiveSheetIndex ->setCellValue ->setCellValue ->setCellValue ->setCellValue;// 混杂各种符号, 编码为UTF-8$objPHPExcel->setActiveSheetIndex ->setCellValue('A4', 'Miscellaneous glyphs') ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç');$objPHPExcel->getActiveSheet()->setCellValue;$objPHPExcel->getActiveSheet->setRowHeight;$objPHPExcel->getActiveSheet->getAlignment;$value = "-ValueAn-Value Bn-Value C";$objPHPExcel->getActiveSheet()->setCellValue;$objPHPExcel->getActiveSheet()->getRowDimension;$objPHPExcel->getActiveSheet->getAlignment;$objPHPExcel->getActiveSheet->setQuotePrefix;// 重命名工作sheet$objPHPExcel->getActiveSheet()->setTitle;// 设置第一个sheet为工作的sheet$objPHPExcel->setActiveSheetIndex;// 保存Excel 2007格式文件,保存路径为当前路径,名字为export.xlsx$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');$objWriter->save;// 保存Excel 95格式文件,,保存路径为当前路径,$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');$objWriter->save;

 

好了,执行后我们可以得到export.xls和export.xlsx。

 代码如下

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!

<?php
/**
 *
 * @copyright 2007-2012 Xiaoqiang.
 * @author Xiaoqiang.Wu <jamblues@gmail.com>
 * @version 1.01
 */
 
error_reporting(E_ALL);
 
date_default_timezone_set('Asia/ShangHai');
 
/** PHPExcel_IOFactory */
require_once '../Classes/PHPExcel/IOFactory.php';
 
 
// Check prerequisites
if (!file_exists("31excel5.xls")) {
    exit("not found 31excel5.xls.n");
}
 
$reader = PHPExcel_IOFactory::createReader('Excel5'); //设置以Excel5格式(Excel97-2003工作簿)
$PHPExcel = $reader->load("31excel5.xls"); // 载入excel文件
$sheet = $PHPExcel->getSheet(0); // 读取第一??工作表
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumm = $sheet->getHighestColumn(); // 取得总列数
 
/** 循环读取每个单元格的数据 */
for ($row = 1; $row <= $highestRow; $row++){//行数是以第1行开始
    for ($column = 'A'; $column <= $highestColumm; $column++) {//列数是以A列开始
        $dataset[] = $sheet->getCell($column.$row)->getValue();
        echo $column.$row.":".$sheet->getCell($column.$row)->getValue()."<br />";
    }
}
 
?>

本文由凤凰平台注册开户发布于编程知识,转载请注明出处:PHPExcel生成和读取Excel文件实例程序

关键词: