仅留作记录使用:/**

* 读取文件方案一

*/

public function readExcel()

{

require_once VENDOR_PATH . 'PhpExcel/PHPExcel/IOFactory.php';

// 循环遍历数据

$objReader = \PHPExcel_IOFactory::createReader('Excel2007'); // 创建一个2007的读取对象

$file = getcwd() . '/internalAPNAndMCC.xlsx';

$objPHPExcel = $objReader->load($file); // 读取一个xlsx文件

foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) { // 遍历工作表

echo 'Worksheet - ' , $worksheet->getTitle() , PHP_EOL;

foreach ($worksheet->getRowIterator() as $row) { // 遍历行

echo 'Row number - ' , $row->getRowIndex(), PHP_EOL;

$cellIterator = $row->getCellIterator(); // 得到所有列

$cellIterator->setIterateOnlyExistingCells(false); // 让迭代器只对现有的单元进行循环

foreach ($cellIterator as $cell) { // 遍历列

if (!is_null($cell)) { //如果列不是空就得到它的坐标和计算的值

echo 'Cell - ', $cell->getCoordinate(), '-', $cell->getCalculatedValue() , PHP_EOL;

}

}

}

}

}

使用TP3.2.3上传&导入数据库:/**

* 批量导入产品

*/

public function p_bulk_import(){

$file = $_FILES['excel'];

if ($file['name']) {

$upload = new \Think\Upload();

$upload->maxSize   =     3145728 ;// 设置附件上传大小

$upload->exts      =     array('xls', 'xlsx', 'csv');// 设置附件上传类型

$upload->rootPath  =     UPLOAD_DIR; // 设置附件上传根目录

$upload->savePath  =     'excel/'; // 设置附件上传(子)目录

//$upload->autoSub   =  false;//是否使用子目录保存上传文件

$info   =   $upload->upload();

if ( !$info ) {// 上传错误提示错误信息

$this->error($upload->getError());

} else {

foreach ($info as $file) {

$file_path = $file['savepath'].$file['savename'];

}

}

}

// 引入PHPEXCEL类

require_once VENDOR_PATH.'PhpExcel/PHPExcel/IOFactory.php';

require_once VENDOR_PATH.'PhpExcel/PHPExcel.php';

// 判断文件版本,选择对应的解析文件

if ('xlsx' == $info['excel']['ext']) {

require_once VENDOR_PATH.'PhpExcel/PHPExcel/Reader/Excel2007.php';

$objReader = \PHPExcel_IOFactory::createReader('Excel2007');

} else {

require_once VENDOR_PATH.'PhpExcel/PHPExcel/Reader/Excel5.php';

$objReader = \PHPExcel_IOFactory::createReader('Excel5');

}

// 解析Excel文件

$objPHPExcel = $objReader->load(getcwd() . "/" . UPLOAD_DIR . $file_path);

// 读取第一个工作表(编号从 0 开始)

$sheet = $objPHPExcel->getSheet(0);

// 取得总行数

$highestRow = $sheet->getHighestRow();

// 取得总列数

$highestColumn = $sheet->getHighestColumn();

// 循环读取excel文件,读取一条,插入数组一条

for ($j=2;$j<=$highestRow;$j++) {

for ($k='A';$k<=$highestColumn;$k++) {

// 读取单元格

$examPaper_arr[$j][$k] = $objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue();

}

}

$sum = 0;

// 重复总数

$user_repeat = 0;

$user = M("apn_new");

$tour_level = M("product_new");

// 开启事务

$user->startTrans();

foreach ($examPaper_arr as $key=>$value) {

//             print_r($key . '==>' . $value[A] . '\r\n' . $value[B]);

if ($user->where("tel='$value[C]'")->find()) {

$user_repeat++;

} else {

$data['name'] = empty($value['C']) ? 0 : $value['C'];

$data['password'] = empty($value['C']) ? 0 : md5($value['C']);

$data['tel'] = empty($value['C']) ? 0 : $value['C'];

$data['create_time'] = time();

$uid = $user->add($data);

if ($uid) {

// 判断导游的类型,0:头目

if (0 == $value['E']) {

$tid = $tour_level->where("id_card='$value[D]'")->find();

if (!$tid) { // 未找到导游头目

$t_data['name'] = empty($value['B']) ? 0 : $value['B'];

$t_data['id_card'] = empty($value['D']) ? 0 : $value['D'];

$t_data['device_id'] = $uid;

$t_data['created_time'] = date("Y.m.d");

$t_data['level'] = 0;

$t_data['fid'] = 0;

$fid = $tour_level->add($t_data);

} else {

$fid = $tid;

}

} else {

$t_data['name'] = empty($value['B']) ? 0 : $value['B'];

$t_data['id_card'] = empty($value['D']) ? 0 : $value['D'];

$t_data['device_id'] = $uid;

$t_data['created_time'] = date("Y.m.d");

$t_data['level'] = 1;

$t_data['fid'] = !isset($fid) ? 3 : $fid;

$tour_level->add($t_data);

}

// 提交事务

$user->commit();

} else {

// 事务回滚

$user->rollback();

}

$sum++;

}

}

echo "上传结束
插入总数:".$sum.";重复总数:".$user_repeat;die;

}/**

* 生成Excel、csv、pdf表格

*/

public function generalExcel()

{

// 引入PHPEXCEL类

require_once VENDOR_PATH.'PhpExcel/PHPExcel/IOFactory.php';

require_once VENDOR_PATH.'PhpExcel/PHPExcel.php';

// 判断文件版本,选择对应的解析文件

require_once VENDOR_PATH.'PhpExcel/PHPExcel/Reader/Excel2007.php';

$objPHPExcel = new \PHPExcel();

// 设置Excel表格参数

$objPHPExcel->getProperties()

->setCreator("Maarten Balliauw")

->setLastModifiedBy("Maarten Balliauw")

->setTitle("Office 2007 XLSX Document")

->setSubject("Office 2007 XLSX Document")

->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")

->setKeywords("office 2007 openxml php")

->setCategory("Test result file");

// 给表格添加数据

$objPHPExcel->setActiveSheetIndex(0)             //设置第一个内置表(一个xls文件里可以有多个表)为活动的

->setCellValue( 'A1', 'Hello' )         //给表的单元格设置数据

->setCellValue( 'B2', 'world!' )      //数据格式可以为字符串

->setCellValue( 'C1', 12)            //数字型

->setCellValue( 'D2', 12)            //

->setCellValue( 'D3', true )           //布尔型

->setCellValue( 'D4', '=SUM(C1:D2)' );//公式

//得到当前活动的表,注意下文教程中会经常用到$objActSheet

$objActSheet = $objPHPExcel->getActiveSheet();

// 位置bbb  *为下文代码位置提供锚

// 给当前活动的表设置名称

$objActSheet->setTitle('Simple2222');

//         日期格式      锚:bbb

//获得秒值变量

$dateTimeNow = time();

//三个表格分别设置为当前实际的日期格式、时间格式、日期和时间格式

//首先将单元格的值设置为由PHPExcel_Shared_Date::PHPToExcel方法转换后的excel格式的值,然后用过得到该单元格的样式里面数字样式再设置显示格式

$objActSheet->setCellValue( 'C9', \PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow ));

$objActSheet->getStyle( 'C9')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);

$objActSheet->setCellValue( 'C10', \PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow ));

$objActSheet->getStyle( 'C10')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4);

$objActSheet->setCellValue( 'C10', \PHPExcel_Shared_Date::PHPToExcel( $dateTimeNow ));

$objActSheet->getStyle( 'C10')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_DATE_TIME4);

//将E4到E13的数字格式设置为EUR

$objPHPExcel->getActiveSheet()->getStyle( 'E4:E13')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE);

//         设置列的宽度

$objActSheet->getColumnDimension( 'B')->setAutoSize(true);   //内容自适应

$objActSheet->getColumnDimension( 'A')->setWidth(30);         //30宽

// 创建一个富文本框(实例)

$objRichText = new \PHPExcel_RichText();

$objRichText->createText("unless specified otherwise on the invoice.");

// 将文字写入到A18单元格中

$objPHPExcel->getActiveSheet()->getCell("A28")->setValue("$objRichText");

// 合并、拆分单元格

$objPHPExcel->getActiveSheet()->mergeCells('A28:B28'); // A28:B28合并

$objPHPExcel->getActiveSheet()->unmergeCells('A28:B28'); // A28:B28再拆分

// object

$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');

$objWriter->save('myexcel.xlsx');

//         设置表格样式和数据格式

//         设置默认的字体和文字大小

$objPHPExcel->getDefaultStyle()->getFont()->setName( 'Arial');

$objPHPExcel->getDefaultStyle()->getFont()->setSize(20);

//         2、提示下载文件

// 生成2003excel格式的xls文件

//         header('Content-Type: application/vnd.ms-excel');

//         header('Content-Disposition: p_w_upload;filename="01simple.xls"');

//         header('Cache-Control: max-age=0');

//         $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');

//         $objWriter->save('php://output');

//         exit;

//         生成2007excel格式的xlsx文件

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');

header('Content-Disposition: p_w_upload;filename="01simple.xlsx"');

header('Cache-Control: max-age=0');

$objWriter = \PHPExcel_IOFactory:: createWriter($objPHPExcel, 'Excel2007');

$objWriter->save( 'php://output');

exit;

// 下载一个pdf文件

//         header('Content-Type: application/pdf');

//         header('Content-Disposition: p_w_upload;filename="01simple.pdf"');

//         header('Cache-Control: max-age=0');

//         $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');

//         $objWriter->save('php://output');

//         exit;

// 生成一个pdf文件

//         $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');

//         $objWriter->save('a.pdf');

// CSV 文件

$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV')->setDelimiter(',' )  //设置分隔符

->setEnclosure('"' )    //设置包围符

->setLineEnding("\r\n" )//设置行分隔符

->setSheetIndex(0)      //设置活动表

->save(str_replace('.php' , '.csv' , __FILE__));

var_dump($objWriter);

}

php 导出excel 2007,PHPExcel-1.8.1导入、导出Excel表格相关推荐

  1. php导出excel2007实例,PHPExcel精简版与导入导出案例

    [实例简介] PHPexcel1.7.7精简版 只包含导入与导出功能:详细我已写好了例子,文档中也有包含,详细介绍见我博客http://blog.csdn.net/slyjit/article/det ...

  2. 基于PhalApi的PHPExcel扩展实现数据导入导出

    前言: 最近开发一款crm,使用PhalApi框架提供数据接口,要用公共接口来实现各个模块的数据导入导出功能.如果是单独的导入导出(一个模块一个导入导出接口)推荐大家使用 phpoffice/phps ...

  3. php excel多,PHPExcel多表单数据导出

    namespace app\excel; use PHPExcel; use PHPExcel_IOFactory; class ExcelMultiSheetHelper { /** * 多表单数据 ...

  4. 利用PHPExcel实现数据的导入导出

    PHPExcel 是用来操作Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言.可以使用它来读取.写入不同格式的电子表格.整体来说是一个不错的Excel操作类. ...

  5. PHPEXCEL 20万数据导入导出(一)

    本片博客记录了一次实际开发中的需要使用PHPExcel导入导出大量数据(20万)的解决过程. 复盘优化自己的项目,好处在于,一旦已找到好的方法,好的代码,你就不可能再使用差的代码 场景描述:开发环境: ...

  6. java poi对excel xls和xlsx格式文件导入导出

    一)poi简介 Apache POI项目是用于基于Microsoft的OLE 2复合文档格式开发文件格式的纯Java端口的主项目. 官网POI API地址:https://poi.apache.org ...

  7. com.alibaba.easyexcel导出指定的列_使用Python导入导出Excel表格

    这篇文章的目的是讲解使用python导入导出Excel表格,目前还不涉及数据处理,主要实现为数据的展示. 第一步,准备材料 python3.8的安装包 一个Excel表格 第二步,安装软件 pytho ...

  8. vue 导入excel插件_Vue框架下实现导入导出Excel、导出PDF

    项目需求:开发一套基于Vue框架的工程档案管理系统,用于工程项目资料的填写.编辑和归档,经调研需支持如下功能: Excel报表的导入.导出 PDF文件的导出 打印表格 经过技术选型,项目组一致决定通过 ...

  9. vue导入excel进度条_Vue结合后台导入导出Excel问题详解

    最近Vue项目中用到了导入导出功能,在网上搜索了一番之后,决定采用Blob方式,这也是大家推荐的一种的方式,特此做下记录. 导出Excel功能 这里不谈别人怎么实现的,我是从后台生成了Excel流文件 ...

  10. php mysql导出csv文件_详解PHP导入导出CSV文件

    我们先准备mysql数据表,假设项目中有一张记录学生信息的表student,并有id,name,sex,age分别记录学生的姓名.性别.年龄等信息. CREATE TABLE `student` ( ...

最新文章

  1. 过度沉思_从沉思到演出:我如何开始我的自由职业
  2. Linux 中文件管理常用的工具
  3. 精密空调主要部件是干啥用的?
  4. 如何选择SSL 证书服务
  5. java高并发(二)并发与高并发基本概念
  6. nacos 读取纯数字字符 出错 @value
  7. mariadb用户群体mysql_MySQL/MariaDB用户账户管理
  8. HTML5form表单的相关知识总结
  9. 基于php网络小说,五部小说点击破亿,盘点网络文学白金作家我吃西红柿!
  10. 在有向图中找出所有简单环--Johnson算法
  11. 轻量引入 好看字体 font-spider 字蛛
  12. python3GUI--你喜欢的无损音乐下载工具(附源码)
  13. flux_屏幕色温调控
  14. pinned memory or page locked memory)
  15. 编程的名言名句(幽默版)
  16. Pytorch里addmm()和addmm_()的用法详解
  17. tampermonkey脚本php,Tampermonkey挂机脚本常用代码片段
  18. SourceInsight | source insight使用技巧
  19. RT5350订制WIFI转串口
  20. SVG:linearGradient渐变在直线上失效的问题解决方案

热门文章

  1. 【文末抽书】Java设计模式--单例模式
  2. 可以直接下载软件,不需要先下载助手的网站推荐
  3. 图形图像处理案例2——勾线画生成器,绕线画生成器
  4. [爆笑网文]伤害MM的六句金言
  5. ASP.NET 开发
  6. vue中下载excel文件
  7. CIH噩梦重现 二手主板市场暗藏“谍影”BIOS病毒
  8. 区块如何防篡改_为什么区块链能防伪防篡改
  9. 在WinXP镜像中手工集成sata驱动。
  10. Linux 探索之旅 | 第四部分第二课:SSH 连接,安全快捷