PHPExcel库的基本使用
来源:互联网 发布:linux 获取项目路径 编辑:程序博客网 时间:2024/06/05 15:28
简单记录下,PHPExcel读excel文件内容到数据库,导出数据库到excel文件。
1.把数据库中数据读出到excel表中,支持生成到当前目录下,和通过浏览器下载。具体看如下代码
<?php
/**
*文件编码需为UTF-8,否则会存在生成的文档内容乱码
*/
/** 引入需要的类库*/
require_once 'Classes\PHPExcel.php';
require_once 'Classes\PHPExcel\IOFactory.php';
require_once 'Classes\PHPExcel\Reader\Excel5.php';
require_once 'Classes\PHPExcel\Reader\Excel2007.php';
$objPHPExcel = new PHPExcel();
//设置生成的Excel文件名
$date = date("Y_m_d",time());
$fileName = "{$date}.xlsx";
//测试数据,正常会从数据库中获取
$data = array(
0 => array('id'=>2012,'name'=>'胡','age' => 25)
);
//Excel文件的说明信息
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
->setLastModifiedBy("Maarten Balliauw")
->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");
//设置表格内容,具体内容根据A1这种具体位置来确定
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1','编号')
->setCellValue('B1','姓名')
->setCellValue('C1','年龄');
//适合把表中数据导入Excel文件中,多数据循环设置值
foreach($data as $key=> $value) {
$key+=2;
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A'.$key,$value['id'])
->setCellValue('B'.$key,$value['name'])
->setCellValue('C'.$key,$value['age']);
}
// 重命名表
// $objPHPExcel->getActiveSheet()->setTitle('Simple');
// 设置活动单指数到第一个表,所以Excel打开这是第一个表
$objPHPExcel->setActiveSheetIndex(0);
// 将输出重定向到一个客户端web浏览器(Excel2007)
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename='.$fileName);
header('Cache-Control: max-age=0');
//要是输出为Excel2007,使用 Excel2007对应的类,生成的文件名为.xlsx.如果是Excel2005,使用Excel5,对应生成.xls文件
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
// $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
//支持浏览器下载生成的文档
$objWriter->save('php://output');
2.把excel文件中内容读出,存入数据库
<?php
/** 引入需要的类库*/
require_once 'Classes\phpexcel.php';
require_once 'Classes\PHPExcel\IOFactory.php';
require_once 'Classes\PHPExcel\Reader\Excel5.php';
//数据库连接
$link = mysqli_connect('localhost','root','','test');
if(!$link){
echo "数据库连接失败";
exit;
}
//读excel表中内容生成对应数组
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel = $objReader->load('1.xlsx');
//读取csv文档内容
// $objReader = new PHPExcel_Reader_CSV();
// $objPHPExcel = $objReader->load('D.csv');
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumn = $sheet->getHighestColumn(); // 取得总列数
//获取文档中的值,存入数组中
$arr_result=array();
for($j=1;$j<=$highestRow;$j++)
{
for($k='A';$k<= $highestColumn;$k++)
{
//读取单元格
array_push($arr_result,($objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue()));
}
}
//数组转换成字符串,方便直接插入数据库中
$str = '';
foreach($arr_result as $item){
$strs.=$item.',';
}
for($j=2;$j<=$highestRow;$j++)
{
$a = $objPHPExcel->getActiveSheet()->getCell("A".$j)->getValue();//获取A列的值
$b = $objPHPExcel->getActiveSheet()->getCell("B".$j)->getValue();//获取B列的值
$c = $objPHPExcel->getActiveSheet()->getCell("C".$j)->getValue();
$d = $objPHPExcel->getActiveSheet()->getCell("D".$j)->getValue();
// $e = $objPHPExcel->getActiveSheet()->getCell("E".$j)->getValue();
// $f = $objPHPExcel->getActiveSheet()->getCell("F".$j)->getValue();
$sql = "INSERT INTO `test`(`Id`, `price`, `stock`, `num`) VALUES ('".$a."','".$b."','".$c."','".$d."')";
// mysqli_query($link,$sql);
// mysqli_query($link,'set names utf-8');
if(mysqli_query($link,$sql)){
echo 1;
}
else{
echo "导入数据失败";
echo mysqli_errno($link);
}
}
具体代码项目可以参照git上面项目:https://github.com/hufeng903/phpexcel。
- PHPExcel库的基本使用
- phpExcel的基本使用
- PHPExcel库的使用
- PHPExcel类库的使用
- PHPExcel插件的使用1——基本数据导出
- PHPExcel插件的使用2——基本数据导入
- PHPExcel 类库的使用技巧
- phpExcel的使用
- PHPExcel插件的使用
- phpExcel的使用
- PHPExcel 的使用
- phpexcel的使用
- PHPExcel 的使用
- phpexcel的使用
- PHPExcel的使用案例:
- ThinkPHP PHPExcel基本使用(一)
- 使用phpexcel导出数据,基本使用方法
- PHPExcel的使用(一)
- μC/OS-II基本原理简介
- Rxjava之FlatMap()的运用
- 【VS开发】如何移植对话框?
- 洛谷 P1341 无序字母对
- 关于ButterKnife注解不能获取到实例的几种可能
- PHPExcel库的基本使用
- μC/OS-II任务栈浅析
- 001——DispatchAction遇到的异常
- POJ 2513 trie树+并查集判断无向图的欧拉路
- 闪回(2)-flashback table
- μC/OS-II中的TCB
- APiCloud学习笔记
- 操作系统 分段 分页
- UC/OS-II内核调度分析