利用phpexcel把excel导入数据库和数据库导出excel实现


Posted in PHP onJanuary 09, 2014

利用phpexcel把excel导入数据库和数据库导出excel实现

<?php
/*
*author zhy
*date 2012 06 12
*for excel
*/
date_default_timezone_set("PRC"); 
error_reporting(E_ALL);
error_reporting(0);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
require_once ('../Classes/PHPExcel.php');
require_once("config.php");
require_once("mysql.class.php");
//根据时间生成采购报表
$time = date("a");
$minute = date("i");
$apm  = "";
if($time=='pm'){
    $apm     = $time;
    $stime   = mktime(12,00,00,date('m'),date('d')-1,date('Y'));
    $etime   = mktime(11,59,59,date('m'),date('d'),date('Y'));
}else{
  $apm     = $time;
    $stime   = mktime(12,00,00,date('m'),date('d')-1,date('Y'));
    $etime   = mktime(11,59,59,date('m'),date('d'),date('Y'));
}
//实例化excel类
$objPHPExcel = new PHPExcel();
////////获取文档信息
////////$objProps = $objPHPExcel->getProperties();
///////print_r($objProps);
///////echo "<br/>";
///////$objProps->setDescription("test_123456");
///////print_r($objProps);

$objPHPExcel->setActiveSheetIndex(0)
    ->setCellValue('A5','商品编码')
                ->setCellValue('B5','货号')
                ->setCellValue('C5','商品名称')
                ->setCellValue('D5','采购量');
//设置选定sheet表名
$objPHPExcel->getActiveSheet()->setTitle('祖名');
//设置字体样式
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setName('Arial')->setSize(25);//////->setUnderline(true);/////->getColor()->setARGB('FFFF0000');///->setBold(true);
//合并单元格 给单元格赋值(数值,字符串,公式)
$objPHPExcel->getActiveSheet()->mergeCells('A1:D3')->setCellValue('A1', 'zhongyi清单');
///////$objPHPExcel->getActiveSheet()->mergeCells('A4:D4')->setCellValue('A4', "=SUM(E4:F4)");
$date_now  = date("Y-m-d");
$objPHPExcel->getActiveSheet()->mergeCells('A4:D4')->setCellValue('A4', "采购日期:".$date_now." ".$apm." ");
//设置单列宽度
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(15);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20);//$objPHPExcel->getActiveSheet()->getColumnDimension('G')->setRowHeight(50);/
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(44);
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(15);
//大边框样式 边框加粗
$lineBORDER = array(
 'borders' => array(
  'outline' => array(
   'style' => PHPExcel_Style_Border::BORDER_THICK,
   'color' => array('argb' => '000000'),
  ),
 ),
);
//表头样式
$head = array(
    'font'    => array(
    'bold'      => true
  ),
 'alignment' => array(
    'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
    'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER
   ),
);
//标题样式
$title = array(
    'font'    => array(
    'bold'      => true
    ),
);
//居中对齐
$CENTER = array(
    'alignment' => array(
      'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
      'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER
     ),
);
//靠右对齐
$RIGHT = array(
    'alignment' => array(
      'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_RIGHT,
      'vertical' => PHPExcel_Style_Alignment::VERTICAL_CENTER
     ),
);
//细边框样式
$linestyle = array(
 'borders' => array(
  'outline' => array(
   'style' => PHPExcel_Style_Border::BORDER_THIN,
   'color' => array('argb' => 'FF000000'),
  ),
 ),
);

$objPHPExcel->getActiveSheet()->getStyle('A1:D3')->applyFromArray($head);///->getAlignment()->getHorizontal('');///->getBorders()->getTop()->setBorderStyle('');
//->setWrapText(true);自动换行
$objPHPExcel->getActiveSheet()->getStyle('A4:D4')->applyFromArray($RIGHT); 
$objPHPExcel->getActiveSheet()->getStyle('A5:D5')->applyFromArray($title); 
//填充色
/////$objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->setARGB('FFFF0000');/
     
//插入数据
$dsql->Execute('omebrand_list',"select i.goods_id , sum( `nums` ) AS num, i.name,i.addon,i.price,g.bn as b,i.bn as h,
g.goods_id,i.goods_id,i.order_id
FROM `sdb_b2c_order_items` as i,sdb_b2c_goods as g
WHERE i.order_id in (select order_id from sdb_b2c_orders where status ='active' and createtime between $stime and $etime) and i.goods_id=g.goods_id and g.cat_id=173 GROUP BY h");
$m = 0;
  unset($re);
  while($row=$dsql->GetObject('omebrand_list'))
  {   $re[$m] = get_object_vars($row);
  $m++;
  }
$row_count = 5;
$objPHPExcel->setActiveSheetIndex(0)
   ->setCellValue('A6', 12325416541)
            ->setCellValue('B6', 4962132165262)
            ->setCellValue('C6', 121515212515241521)
            ->setCellValue('D6', 96215465415);
foreach($re as $r => $dataRow) {
 $baseRow = 6;
 $row = $baseRow + $r;
 $bn=$dataRow[h];
 $goods_id = $dataRow[goods_id];
   $spec_value = "";
   $aa = unserialize($dataRow[addon]);
   if ($aa['product_attr']){
    foreach ($aa['product_attr'] as $arr_special_info)  {
     $spec_value = $arr_special_info['value'];
    }
   }
   preg_match_all('/\-?\d+\.?\d*/i',$spec_value,$row1);
   $num = $row1[0][0];
   $all = $num*$dataRow[num];
   if($spec_value==''){
    $all=$dataRow['num'];
    //$prce=$dataRow[price];
   }
 $objPHPExcel->setActiveSheetIndex(0)
    ->setCellValue('A'.$row, $dataRow['b'])
                ->setCellValue('B'.$row, $bn)
             ->setCellValue('C'.$row, $dataRow['name'])
             ->setCellValue('D'.$row, $all);
    $objPHPExcel->getActiveSheet()->getStyle('A'.$row_count)->applyFromArray($linestyle);             
    $objPHPExcel->getActiveSheet()->getStyle('B'.$row_count)->applyFromArray($linestyle);
    $objPHPExcel->getActiveSheet()->getStyle('C'.$row_count)->applyFromArray($linestyle);
    $objPHPExcel->getActiveSheet()->getStyle('D'.$row_count)->applyFromArray($linestyle);              
 $baseRow++;
    $row_count++;
}
$objPHPExcel->getActiveSheet()->getStyle('A'.$row_count)->applyFromArray($linestyle);             
$objPHPExcel->getActiveSheet()->getStyle('B'.$row_count)->applyFromArray($linestyle);
$objPHPExcel->getActiveSheet()->getStyle('C'.$row_count)->applyFromArray($linestyle);
$objPHPExcel->getActiveSheet()->getStyle('D'.$row_count)->applyFromArray($linestyle);  
$objPHPExcel->getActiveSheet()->getStyle('A5:D'.$row_count)->applyFromArray($CENTER);  
$objPHPExcel->getActiveSheet()->getStyle('A1:D'.$row_count)->applyFromArray($lineBORDER);

//设置打印页边距
$objPHPExcel->getActiveSheet()->getPageMargins()->setTop(0);
$objPHPExcel->getActiveSheet()->getPageMargins()->setRight(0);
$objPHPExcel->getActiveSheet()->getPageMargins()->setLeft(0);
$objPHPExcel->getActiveSheet()->getPageMargins()->setBottom(0);
//设置纸张类型
$objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);
//设置自动筛选
$objPHPExcel->getActiveSheet()->setAutoFilter('A5:D'.$row_count);
//设置自动换行
$objPHPExcel->getActiveSheet()->getStyle('B6:B'.$row_count)->getAlignment()->setWrapText(true);
//设置格式化数字
$objPHPExcel->getActiveSheet()->getStyle('A6:A'.$row_count)->getNumberFormat()->setFormatCode('0000000000');
//设置安全级别
$md=md5(time());
$md=substr($md,0,8);
$objPHPExcel->getActiveSheet()->getProtection()->setPassword("$md");
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);//
$objPHPExcel->getActiveSheet()->getProtection()->setSort(true);
$objPHPExcel->getActiveSheet()->getProtection()->setInsertRows(true);
$objPHPExcel->getActiveSheet()->getProtection()->setFormatCells(true);
//添加图片 
/*
$obj=$objPHPExcel->getActiveSheet();
$objDrawing = new PHPExcel_Worksheet_Drawing();   
$objDrawing->setName('wsyImg');   
$objDrawing->setDescription('Image inserted by zhy');   
$objDrawing->setPath('./wsy.jpg');   
$objDrawing->setHeight(50);   
$objDrawing->setCoordinates('H23');   
$objDrawing->setOffsetX(60);   
$objDrawing->setRotation(-10);   /
$objDrawing->getShadow()->setVisible(true);   
$objDrawing->getShadow()->setDirection(-20); / 
$objDrawing->setWorksheet($obj);
*/
//页眉页脚
//$objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddHeader('zhy'); 
//$objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddFooter('end'); 

$objPHPExcel->setActiveSheetIndex(0);
$tname=date('Y-m-dH',time());
$tnam=iconv('UTF-8','GBK','祖名订单');
$tname=$tnam.$tname;

// Excel 2007保存
//$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); 
//$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); 
// Excel 5保存 
//$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); 
//$objWriter->save(str_replace('.php', '.xls', __FILE__)); 
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save(str_replace('.php', '.xls', __FILE__));

//$url = "/data/home/htdocs/ec/public/files/".date("Y")."/".date("Ym")."/";
createDir($url);
function createDir($dir) {
 if  (!is_dir ($dir )) {
  mkdir($dir, 0777, true);
  chmod($dir, 0777);  
  chown( $dir, 'daemon' );
  chgrp( $dir, 'daemon' );   
 }
}
$name='forexmple_excel';
rename(str_replace('.php', '.xls', __FILE__), $name.'.xls');

?>
PHP 相关文章推荐
PHP脚本数据库功能详解(中)
Oct 09 PHP
php中关于普通表单多文件上传的处理方法
Mar 25 PHP
PHP常用开发函数解析之数组篇[未完结]
Jul 30 PHP
解析PHP中一些可能会被忽略的问题
Jun 21 PHP
PHP连接MSSQL2008/2005数据库(SQLSRV)配置实例
Oct 22 PHP
PHP通过插入mysql数据来实现多机互锁实例
Nov 05 PHP
分享下php5类中三种数据类型的区别
Jan 26 PHP
PHP实现动态柱状图改进版
Mar 30 PHP
微信支付的开发流程详解
Sep 13 PHP
PHP网页安全认证的实例详解
Sep 28 PHP
php取出数组单个值的方法
Mar 12 PHP
Laravel框架源码解析之反射的使用详解
May 14 PHP
php将mysql数据库整库导出生成sql文件的具体实现
Jan 08 #PHP
PHP修改session_id示例代码
Jan 08 #PHP
让PHP显示Facebook的粉丝数量方法
Jan 08 #PHP
利用浏览器的Javascript控制台调试PHP程序
Jan 08 #PHP
php获取从百度搜索进入网站的关键词的详细代码
Jan 08 #PHP
PHP IE中下载附件问题解决方法
Jan 07 #PHP
迅速确定php多维数组的深度的方法
Jan 07 #PHP
You might like
php实现首页链接查询 友情链接检查的代码
2010/01/05 PHP
php站内搜索并高亮显示关键字的实现代码
2011/12/29 PHP
PHP CURL模拟登录新浪微博抓取页面内容 基于EaglePHP框架开发
2012/01/16 PHP
JS网络游戏-(模拟城市webgame)提供的一些例子下载
2007/10/14 Javascript
一个基于jquery的图片切换效果
2010/07/06 Javascript
基于JQUERY的两个ListBox子项互相调整的实现代码
2011/05/07 Javascript
深入理解JavaScript系列(6) 强大的原型和原型链
2012/01/15 Javascript
Javascript 实现复制(Copy)动作方法大全
2014/06/20 Javascript
jQuery固定元素插件scrolltofixed使用指南
2015/04/21 Javascript
JS实现超简单的鼠标拖动效果
2015/11/02 Javascript
JS实现字符串转日期并比较大小实例分析
2015/12/09 Javascript
基于JS实现EOS隐藏错误提示层代码
2016/04/25 Javascript
Bootstrap自定义文件上传下载样式
2016/05/26 Javascript
js使用xml数据载体实现城市省份二级联动效果
2017/11/08 Javascript
node.js使用express框架进行文件上传详解
2019/03/03 Javascript
jQuery+PHP+Ajax实现动态数字统计展示功能
2019/12/25 jQuery
Vue将props值实时传递 并可修改的操作
2020/08/09 Javascript
python中关于时间和日期函数的常用计算总结(time和datatime)
2013/03/08 Python
Numpy数组array和矩阵matrix转换方法
2019/08/05 Python
python 使用pdfminer3k 读取PDF文档的例子
2019/08/27 Python
pycharm 实现本地写代码,服务器运行的操作
2020/06/08 Python
哪些是python中web开发框架
2020/06/17 Python
英国在线珠宝店:The Jewel Hut
2017/03/20 全球购物
英国浴室洗脸盆购物网站:Click Basin
2018/06/08 全球购物
电子商务专业个人的自我评价
2013/11/19 职场文书
西门豹教学反思
2014/02/04 职场文书
教堂婚礼主持词
2014/03/14 职场文书
腾讯广告词
2014/03/19 职场文书
社区文化建设方案
2014/05/02 职场文书
关于梦想的演讲稿
2014/05/05 职场文书
幼儿园教师师德师风演讲稿:我自豪我是一名幼师
2014/09/10 职场文书
交通事故被告代理词
2015/05/23 职场文书
党员转正大会主持词
2015/07/02 职场文书
2015教师节通讯稿
2015/07/20 职场文书
apache基于端口创建虚拟主机的示例
2021/04/22 Servers
MyBatis配置文件解析与MyBatis实例演示
2022/04/07 Java/Android