PHP博客导入导出,使用PHPExcel完成导出以及导入

一、导出

使用PHPExcel类库完成数据导出的功能。类库文件以及code file(代码文件)会在文章最底部提供下载。好了 话不多说直接上代码<?php

//导出数据为excel格式

//要导出的数据数组(这里通常都是从数据库[mysql等]读取出来的数据  这里我就直接写一个数组来代替了)

$arr = array(

0 => array('book_name' => 'PHP','price' => '99.00','isbn' =>'11-111'),

1 => array('book_name' => 'mysql','price' => '100.00','isbn' => '22-222'),

2 => array('book_name' => 'Linux','price' => '110.00','isbn' => '33-333')

);

//引入类库文件

require_once 'PHPExcel.php';

//创建PHPExcel对象

$objPHPExcel=new PHPExcel();

//设置文件属性

$objPHPExcel->getProperties()->setCreator('http://www.jb51.net')

->setLastModifiedBy('http://www.jb51.net')

->setTitle('Office 2007 XLSX Document')

->setSubject('Office 2007 XLSX Document')

->setDescription('Document for Office 2007 XLSX, generated using PHP classes.')

->setKeywords('office 2007 openxml php')

->setCategory('Result file');

//给导出的excel添加列名称

$objPHPExcel->setActiveSheetIndex(0)

->setCellValue('A1','书名')   //设置A1单元格的名称为 书名

->setCellValue('B1','价格')   //设置B1单元格的名称为 价格

->setCellValue('C1','编号');  //设置C1单元格的名称为 编号

//设置excel文件的指定的列的单元格的宽度

$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(13);

$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(10);

$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(15);

//循环数组给A、B、C等列添加对应的数据

$i=2;  //从excel文件的第2行开始逐一写入数据

foreach($arr as $key => $val)

{

$objPHPExcel->setActiveSheetIndex(0)

->setCellValue('A'.$i,$val['book_name'])

->setCellValue('B'.$i,' '.$val['price'])

->setCellValue('C'.$i,$val['isbn']);

$i++;

}

$filename=urlencode('').date('YmdHis'); //用时间戳给导出的excel文件命名

//*生成xlsx文件

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

//excel-2007格式 如需要导出低版本excel 最好是将后缀扩展名从xlsx改成xls

header('Content-Disposition: attachment;filename="'.$filename.'.xlsx"');

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

//保存导出的excel文件(导出的是excel-2007格式 如果需要导出低版本excel 将'Excel2007'参数换成'Excel5')

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

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

exit;

?>

导出之后打开保存下来的excel文件 最终效果如下:

21979fe0eb1e1c379c4ba18df9c3e7cb.png

二、导入

示例代码如下:<?php

//使用PHPExcel导入数据示例

//加载PHPExcel类库文件

require_once './PHPExcel.php';

require_once './PHPExcel/IOFactory.php';

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

/*一般要导入的excel文件是用户自己上传的excel格式的文件。这里我就直接以demo_import_excel.xlsx这个文件

来当做已经上传好了的excel文件

*/

$file_name = './demo_import_excel.xlsx';

$objReader   = new PHPExcel_Reader_Excel2007();

$objPHPExcel = $objReader->load($file_name);

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

$highestRow = $sheet->getHighestRow();  //总行数

$highestColumn = $sheet->getHighestColumn(); //总列数

//开始循环读取excel单元格里的数据

for($loop = 3; $loop <=$highestRow; $loop++)

{

/*

注意:这里的A3:H 其中A3表示是从A3的这个单元格开始往下读取 一直读取到excel单元格的H列结束,第二次循环($loop++之后)

则开始从A4单元格开始读取 一直读取到H列。。。等等等等 直到循环完毕所有有值的excel行数(即:$highestRow)

*/

$data_arr = $objPHPExcel->getActiveSheet()->rangeToArray( 'A3:H'.$highestRow );

}

echo '

';

print_r($data_arr); //输出已经读取完excel文件的数据

echo '

';

/*

$data_arr就是我们使用PHPExcel类库读取完excel文件的数据(一个二维数组)了,

拿到这个数据我们就可以对其进行插入到数据库里了(比如mysql等)

*/

?>

声明:禁止任何非法用途使用,凡因违规使用而引起的任何法律纠纷,本站概不负责。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值