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
    评论
使用Laravel框架实现PHPExcel导入导出功能非常简单。首先,我们需要安装PHPExcel库。可以通过Composer来安装,只需在终端中运行以下命令: ``` composer require phpoffice/phpexcel ``` 安装完成之后,在Laravel的控制器中,我们可以使用PHPExcel的相关类来实现导入导出功能。 要导出Excel文件,我们可以先创建一个PHPExcel对象,并设置一些基本的属性,例如文件名、作者等。然后,我们可以创建一个工作表,并设置一些表头信息。接下来,我们可以遍历需要导出的数据,将数据逐行写入工作表中。最后,我们可以使用PHPExcelWriter将工作表保存为Excel文件。下面是一个示例代码: ```php use PHPExcel; use PHPExcel_IOFactory; class ExportController extends Controller { public function exportData() { $objPHPExcel = new PHPExcel(); // 设置文件属性 $objPHPExcel->getProperties() ->setCreator("Your Name") ->setLastModifiedBy("Your Name") ->setTitle("Export Data") ->setSubject("Export Data") ->setDescription("Export Data"); $objPHPExcel->setActiveSheetIndex(0); $sheet = $objPHPExcel->getActiveSheet(); // 设置表头信息 $sheet->setCellValue('A1', 'Column 1') ->setCellValue('B1', 'Column 2') ->setCellValue('C1', 'Column 3'); // 导出数据 $data = [ ['Data 1', 'Data 2', 'Data 3'], ['Data 4', 'Data 5', 'Data 6'], ]; foreach ($data as $key => $value) { $row = $key + 2; $sheet->setCellValue('A' . $row, $value[0]) ->setCellValue('B' . $row, $value[1]) ->setCellValue('C' . $row, $value[2]); } // 导出Excel $objPHPExcel->getActiveSheet()->setTitle('Sheet 1'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save('export.xlsx'); } } ``` 要导入Excel文件,我们可以先创建一个PHPExcel对象,并使用`load`方法加载Excel文件。然后,我们可以通过`getActiveSheet`方法获取工作表,并使用`getCell`方法获取单元格的值。接下来,我们可以遍历工作表的行和列,将数据存储到数组中。最后,我们可以对获取到的数据进行相关的处理。下面是一个示例代码: ```php use PHPExcel; use PHPExcel_IOFactory; class ImportController extends Controller { public function importData() { $objPHPExcel = PHPExcel_IOFactory::load('import.xlsx'); $sheet = $objPHPExcel->getActiveSheet(); $data = []; foreach ($sheet->getRowIterator() as $row) { $rowData = []; foreach ($row->getCellIterator() as $cell) { $rowData[] = $cell->getValue(); } $data[] = $rowData; } // 对导入的数据进行处理 // ... return $data; } } ``` 通过以上的代码,我们就可以轻松地在Laravel框架中实现PHPExcel导入导出功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值