您现在的位置是:首页 > cms教程 > phpcms教程phpcms教程
phpcms用phpexcel导入导出excel的实现方法
雅绿2025-05-29phpcms教程已有人查阅
导读这个方法我写在phpcms/libs/functions/global.func.php里面$objPHPExcel->setActiveSheetIndex(0)
<form method="post" action="?m=content&c=content&a=public_add_excel" enctype="multipart/form-data">
<h3>导入excel表:</h3><input type="file" name="file_stu"/>
<input type="submit" value="导入"/>
</form>
//导入的方法
public function public_add_excel()
{
$file_path=$_FILES['file_stu']['tmp_name'];
require PC_PATH.'libs/classes/PHPExcel.php';
require PC_PATH.'libs/classes/PHPExcel/IOFactory.php';
require PC_PATH.'libs/classes/PHPExcel/Reader/Excel2007.php';
require PC_PATH.'libs/classes/PHPExcel/Reader/Excel5.php';
$this->db_hb2 = pc_base::load_model('huanbao2_model');
move_uploaded_file($file_path, './tmp.xls');
$array=format_excel2array('./tmp.xls');
//array_shift($array);
//将数组入库按照官方方法入库
//var_dump($array);die;
foreach ($array as $key => $value) {
$mzinfo=array();
$mzinfo['c3']=$value['B'];
$mzinfo['com1']=$value['C'];
$mzinfo['carname']=$value['D'];
$mzinfo['fdj']=$value['E'];
$mzinfo['com2']=$value['F'];
$mzinfo['shangbiao']=$value['G'];
$mzinfo['jieduan']=$value['H'];
$mzinfo['cat']=$value['I'];
$time = (((double)$value['J'])-25569)*24*60*60-28800;//时间的转换
$mzinfo['time']=str_replace("00:00","",date('Y-m-d H:i',$time)) ;
$mzinfo['flag']=2;
$ids=$this->db_hb2->insert($mzinfo,true);
}
showmessage(L('operation_success'), HTTP_REFERER);
}
//format_excel2array
这个方法我写在phpcms/libs/functions/global.func.php里面
function format_excel2array($filePath='',$sheet=0){
if(empty($filePath) or !file_exists($filePath)){die('file not exists');}
$PHPReader = new PHPExcel_Reader_Excel2007(); //建立reader对象
if(!$PHPReader->canRead($filePath)){
$PHPReader = new PHPExcel_Reader_Excel5();
if(!$PHPReader->canRead($filePath)){
echo 'no Excel';
return ;
}
}
$PHPExcel = $PHPReader->load($filePath); //建立excel对象
$currentSheet = $PHPExcel->getSheet($sheet); //**读取excel文件中的指定工作表*/
$allColumn = $currentSheet->getHighestColumn(); //**取得较大的列号*/
$allRow = $currentSheet->getHighestRow(); //**取得一共有多少行*/
$data = array();
for($rowIndex=1;$rowIndex<=$allRow;$rowIndex++){ //循环读取每个单元格的内容。注意行从1开始,列从A开始
for($colIndex='A';$colIndex<=$allColumn;$colIndex++){
$addr = $colIndex.$rowIndex;
$cell = $currentSheet->getCell($addr)->getValue();
if($cell instanceof PHPExcel_RichText){ //富文本转换字符串
$cell = $cell->__toString();
}
$data[$rowIndex][$colIndex] = $cell;
}
}
return $data;
}
//导出的方法
public function daochuexcel()
{
require PC_PATH.'libs/classes/PHPExcel.php';
require PC_PATH.'libs/classes/PHPExcel/Writer/Excel5.php';
require PC_PATH.'libs/classes/PHPExcel/Writer/Excel2007.php';
require PC_PATH.'libs/classes/PHPExcel/IOFactory.php';
if(empty($_POST['ids'])) showmessage(L('you_do_not_check'));
$where=" itemid in(".implode(",",$_POST['ids']).")";
$result=$this->db_hb->select($where,'*');
//var_dump($result);die;
//创建一个excel对象
$objPHPExcel = new PHPExcel();
$objPHPExcel->getProperties()->setCreator("ctos")
->setLastModifiedBy("ctos")
->setTitle("Office 2007 XLSX Test Document")
->setSubject("Office 2007 XLSX Test Document")
->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
->setKeywords("office 2007 openxml php")
->setCategory("Test result file");
//set width
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(8);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(10);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(25);
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(12);
$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(50);
$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(10);
$objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(12);
$objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(12);
$objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(12);
$objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(30);
//设置行高度
$objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(22);
$objPHPExcel->getActiveSheet()->getRowDimension('2')->setRowHeight(20);
//set font size bold
$objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setSize(10);
$objPHPExcel->getActiveSheet()->getStyle('A2:J2')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('A2:J2')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('A2:J2')->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
//设置水平居中
$objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
$objPHPExcel->getActiveSheet()->getStyle('A')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('B')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('D')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('F')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('G')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('H')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('I')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
//
$objPHPExcel->getActiveSheet()->mergeCells('A1:J1');
// set table header content
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', '环保数据报表汇总 时间:' . date('Y-m-d H:i:s'))
->setCellValue('A2', 'ID')
->setCellValue('B2', '车辆型号')
->setCellValue('C2', '生产企业名称')
->setCellValue('D2', '车辆名称')
->setCellValue('E2', '发动机型号')
->setCellValue('F2', '发动机生产厂家')
->setCellValue('G2', '商标')
->setCellValue('H2', '阶段')
->setCellValue('I2', '车辆类别')
->setCellValue('J2', '目录日期');
// Miscellaneous glyphs, UTF-8
for ($i =0; $i < count($result); $i++) {
$objPHPExcel->getActiveSheet(0)->setCellValue('A' . ($i + 3), $result[$i]['itemid']);
$objPHPExcel->getActiveSheet(0)->setCellValue('B' . ($i + 3), $result[$i]['c3']);
$objPHPExcel->getActiveSheet(0)->setCellValue('C' . ($i + 3), $result[$i]['com1']);
$objPHPExcel->getActiveSheet(0)->setCellValue('D' . ($i + 3), $result[$i]['carname']);
$objPHPExcel->getActiveSheet(0)->setCellValue('E' . ($i + 3), $result[$i]['fdj']);
$objPHPExcel->getActiveSheet(0)->setCellValue('F' . ($i + 3), $result[$i]['com2']);
$objPHPExcel->getActiveSheet(0)->setCellValue('G' . ($i + 3), $result[$i]['shangbiao']);
$objPHPExcel->getActiveSheet(0)->setCellValue('H' . ($i + 3), $result[$i]['jieduan']);
$objPHPExcel->getActiveSheet(0)->setCellValue('I' . ($i + 3), $result[$i]['cat']);
$objPHPExcel->getActiveSheet(0)->setCellValue('J' . ($i + 3), $result[$i]['time']);
$objPHPExcel->getActiveSheet()->getStyle('A' . ($i + 3) . ':J' . ($i + 3))->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
$objPHPExcel->getActiveSheet()->getStyle('A' . ($i + 3) . ':J' . ($i + 3))->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objPHPExcel->getActiveSheet()->getRowDimension($i + 3)->setRowHeight(16);
}
// Rename sheet
$objPHPExcel->getActiveSheet()->setTitle('环保数据汇总表');
// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);
// Redirect output to a client’s web browser (Excel5)
ob_end_clean();//清除缓冲区,避免乱码
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="环保数据汇总表(' . date('Ymd-His') . ').xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
}
本文标签:
很赞哦! ()
上一篇:PHPCMS企业站制作步骤过程
下一篇:phpcms基础内容使用教程
图文教程
phpcms二次开发是什么,需要哪些基础
phpcms二次开发是指:在phpcms现有的程序上进行定制修改,功能扩展,然后达到自己想要的效果,一般来说不会改变原有程序的核心源码。
PHPCMS后台访问特别慢的原因及解决方法
PHPCMS 后台访问特别慢的原因?因为PHPCMS默认连接数据库,使用的HOST是“localhost”,而“localhost”如果没有被“127.0.0.1”解析到
phpcmsV9内容模型管理介绍
模型,系统知识的抽象表示。既然抽象了,那就得脑补一下。大家都是面向对象设计的专业人员,类就很抽象的,对比类的定义想象一下模型的概念。
phpcms首页模板怎么修改
phpcms首页模板在哪里改?打开你的phpcms首页这是顶部这是底部登陆网站的文件管理器,若是本地,则找到安装的目录找到phpcms文件夹依次进
相关源码
-
(自适应)英文绿色精密模具零件加工五金零件pbootcms外贸网站模板本模板基于PbootCMS开发,为五金零件、精密模具加工等英文外贸企业设计。采用响应式布局,适配各类移动设备,是五金零件企业开展国际贸易的专业展示平台。查看源码 -
自适应容器设备机械行业通用pbootcms网站模板本模板是一款基于PbootCMS开源内核深度开发,为容器制造、容器设备、压力容器及相关行业量身打造的高品质响应式企业网站模板。查看源码 -
(PC+WAP)房屋建造建筑工程房地产建材行pbootcms网站模板下载本模板基于PbootCMS内核开发,为房屋建造、建筑工程及房地产建材类企业设计。通过本模板可快速搭建具有行业特色的企业官网,只需替换文字与图片内容即可适配其他行业使用。查看源码 -
自适应车行汽车租赁二手车行业企业网站模板为汽车租赁与二手车交易场景深度优化,采用PbootCMS内核开发,聚焦车辆展示、租赁流程与服务介绍三大核心模块。响应式布局确保PC与移动端数据实时同步,后台一键管理车辆信息查看源码 -
(自适应响应式)电子数码科技产品介绍带留言网站模板下载为电子产品企业设计的展示系统,集成智能产品对比器、参数规格表和展示模块。支持消费电子、智能设备等多级分类展示,内置产品技术参数数据库。查看源码 -
(自适应响应式)超市仓储仓库货架展架网站pbootcms源码下载本模板为货架展架、仓储货架行业量身打造,采用PbootCMS内核开发,充分考虑了货架产品展示和企业形象展示的需求。模板设计简洁大方,突出产品特点,能够有效展示各类货架产品的规格参数和应用场景,帮助访客快速了解企业核心业务和产品优势。查看源码
| 分享笔记 (共有 篇笔记) |
