本文主要和大家分享PHP处理Excel表格实例方法,包括PHP导入Excel的方法,希望能帮助到大家。
一、PHP导入Excel
使用PHP-ExcelReader,下载地址: http://sourceforge.net/projects/phpexcelreader
举例:
<?php require_once 'Excel/reader.php'; // ExcelFile($filename, $encoding); $data = new Spreadsheet_Excel_Reader(); // Set output Encoding. $data->setOutputEncoding('utf8'); $data->read(' wjztest.xls'); error_reporting(E_ALL ^ E_NOTICE); for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) { for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) { echo """.$data->sheets[0]['cells'][$i][$j]."","; } echo "\n"; } ?>
二 、PHP导入Excel
推荐PHPExcel,官方网站: http://www.codeplex.com/PHPExcel
导入导出都成,可以导出office2007格式,同时兼容2003。
下载下来的包中有文档和例子,大家可以自行研究。
抄段例子出来:
<?php ini_set("display_errors",1);//是否显示报错信息 ini_set('include_path', ini_get('include_path').';D:\\PHP\\PHPExcel 1.6.6\\Tests\\classes\\');//设置此页面包含路径 include "classes/PHPExcel.php"; include "classes/PHPExcel/Writer/Excel5.php"; //创建一个excel $objPHPExcel = new PHPExcel(); $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); $objWriter->save("xxx.xls"); ?>
<? //设置PHPExcel类库的include path set_include_path('.'. PATH_SEPARATOR .'D:\workspace\biznaligy_eh\dev_src\includes\PHPExcel' . PATH_SEPARATOR . get_include_path()); require_once 'PHPExcel.php'; require_once 'PHPExcel/Writer/Excel5.php'; // 用于其他低版本xls require_once 'PHPExcel/Writer/Excel2007.php'; // 用于 excel-2007 格式 // 创建一个处理对象实例 $objExcel = new PHPExcel(); // 创建文件格式写入对象实例, uncomment $objWriter = new PHPExcel_Writer_Excel5($objExcel); // 用于其他版本格式 //or //$objWriter = new PHPExcel_Writer_Excel2007($objExcel); // 用于 2007 格式 //$objWriter->setOffice2003Compatibility(true); //设置文档基本属性 $objProps = $objExcel->getProperties(); $objProps->setCreator("Zeal Li"); $objProps->setLastModifiedBy("Zeal Li"); $objProps->setTitle("Office XLS Test Document"); $objProps->setSubject("Office XLS Test Document, Demo"); $objProps->setDescription("Test document, generated by PHPExcel."); $objProps->setKeywords("office excel PHPExcel"); $objProps->setCategory("Test"); //设置当前的sheet索引,用于后续的内容操作。 //一般只有在使用多个sheet的时候才需要显示调用。 //缺省情况下,PHPExcel会自动创建第一个sheet被设置SheetIndex=0 $objExcel->setActiveSheetIndex(0); $objActSheet = $objExcel->getActiveSheet(); //设置当前活动sheet的名称 $objActSheet->setTitle('测试Sheet'); //设置单元格内容 //由PHPExcel根据传入内容自动判断单元格内容类型 $objActSheet->setCellValue('A1', '字符串内容'); // 字符串内容 $objActSheet->setCellValue('A2', 26); // 数值 $objActSheet->setCellValue('A3', true); // 布尔值 $objActSheet->setCellValue('A4', '=SUM(A2:A2)'); // 公式 //显式指定内容类型 $objActSheet->setCellValueExplicit('A5', '847475847857487584', PHPExcel_Cell_DataType::TYPE_STRING); //合并单元格 $objActSheet->mergeCells('B1:C22'); //分离单元格 $objActSheet->unmergeCells('B1:C22'); //设置单元格样式 //设置宽度 $objActSheet->getColumnDimension('B')->setAutoSize(true); $objActSheet->getColumnDimension('A')->setWidth(30); $objStyleA5 = $objActSheet->getStyle('A5'); //设置单元格内容的数字格式。 //如果使用了 PHPExcel_Writer_Excel5 来生成内容的话, //这里需要注意,在 PHPExcel_Style_NumberFormat 类的 const 变量定义的 //各种自定义格式化方式中,其它类型都可以正常使用,但当setFormatCode //为 FORMAT_NUMBER 的时候,实际出来的效果被没有把格式设置为"0"。需要 //修改 PHPExcel_Writer_Excel5_Format 类源代码中的 getXf($style) 方法, //在 if ($this->_BIFF_version == 0x0500) { (第363行附近)前面增加一 //行代码: //if($ifmt === '0') $ifmt = 1; //设置格式为PHPExcel_Style_NumberFormat::FORMAT_NUMBER,避免某些大数字 //被使用科学记数方式显示,配合下面的 setAutoSize 方法可以让每一行的内容 //都按原始内容全部显示出来。 $objStyleA5 ->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER); //设置字体 $objFontA5 = $objStyleA5->getFont(); $objFontA5->setName('Courier New'); $objFontA5->setSize(10); $objFontA5->setBold(true); $objFontA5->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE); $objFontA5->getColor()->setARGB('FF999999'); //设置对齐方式 $objAlignA5 = $objStyleA5->getAlignment(); $objAlignA5->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); $objAlignA5->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); //设置边框 $objBorderA5 = $objStyleA5->getBorders(); $objBorderA5->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN); $objBorderA5->getTop()->getColor()->setARGB('FFFF0000'); // color $objBorderA5->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN); $objBorderA5->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN); $objBorderA5->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN); //设置填充颜色 $objFillA5 = $objStyleA5->getFill(); $objFillA5->setFillType(PHPExcel_Style_Fill::FILL_SOLID); $objFillA5->getStartColor()->setARGB('FFEEEEEE'); //从指定的单元格复制样式信息. $objActSheet->duplicateStyle($objStyleA5, 'B1:C22'); //添加图片 $objDrawing = new PHPExcel_Worksheet_Drawing(); $objDrawing->setName('ZealImg'); $objDrawing->setDescription('Image inserted by Zeal'); $objDrawing->setPath('./zeali.net.logo.gif'); $objDrawing->setHeight(36); $objDrawing->setCoordinates('C23'); $objDrawing->setOffsetX(10); $objDrawing->setRotation(15); $objDrawing->getShadow()->setVisible(true); $objDrawing->getShadow()->setDirection(36); $objDrawing->setWorksheet($objActSheet); //添加一个新的worksheet $objExcel->createSheet(); $objExcel->getSheet(1)->setTitle('测试2'); //保护单元格 $objExcel->getSheet(1)->getProtection()->setSheet(true); $objExcel->getSheet(1)->protectCells('A1:C22', 'PHPExcel'); //输出内容 $outputFileName = "output.xls"; //到文件 ////$objWriter->save($outputFileName); //or //到浏览器 header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header('Content-Disposition:inline;filename="'.$outputFileName.'"'); header("Content-Transfer-Encoding: binary"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Pragma: no-cache"); $objWriter->save('php://output'); ?>
相关推荐:
以上是PHP处理Excel表格实例方法的详细内容。更多信息请关注PHP中文网其他相关文章!

本篇文章给大家带来了关于excel的相关知识,其中主要介绍了关于折叠表格的相关问题,就是分类汇总的功能,这样查看数据会非常的方便,下面一起来看一下,希望对大家有帮助。

在之前的文章《实用Excel技巧分享:利用 数据透视表 来汇总业绩》中,我们学习了下Excel数据透视表,了解了利用数据透视表来汇总业绩的方法。而今天我们来聊聊怎么计算时间差(年数差、月数差、周数差),希望对大家有所帮助!

本篇文章给大家带来了关于excel的相关知识,其中主要介绍了关于AGGREGATE函数的相关内容,该函数用法与SUBTOTAL函数类似,但在功能上比SUBTOTAL函数更加强大,下面一起来看一下,希望对大家有帮助。

在之前的文章《实用Word技巧分享:聊聊你没用过的“行号”功能》中,我们了解了Word中你肯定没用过的"行号”功能。今天继续实用Word技巧分享,看看Excel表格怎么借用Word进行分栏打印,快来收藏使用吧!

在之前的文章《实用Excel技巧分享:原来“定位功能”这么有用!》中,我们了解了定位功能的妙用。而今天我们聊聊合并后的单元格如何实现筛选功能,分享一种复制粘贴和方法解决这个问题,另外还会给大家分享一种合并单元格的不错的替代方式。

本篇文章给大家带来了关于excel的相关知识,其中主要介绍了关于zenmm制作倒计时牌的相关内容,使用Excel中的日期函数结合按指定时间刷新的VBA代码,即可制作出倒计时牌,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于excel的相关知识,其中主要介绍了关于如何使用函数寻找总和为某个值的组合的问题,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Excel的相关知识,其中主要介绍了关于XLOOKUP函数的相关知识,包括了常规查询、逆向查询、返回多列、自动除错以及近似查找等内容,下面一起来看一下,希望对大家有帮助。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Dreamweaver CS6
视觉化网页开发工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境