关于PHPExcel的导入导出

把对应的包放在vendor下面,注意file_stui是你前端的name值,k和v是数据库的字段名,kv是表名。其他的看注解吧。ThinkPHP版本是3.2.3
//导入excel
public function lst()
{
/*
判断是否有文件过来 file_stu是表单中对应的name值
*/
if (!empty ($_FILES ['file_stu'] ['name'])) {
$tmp_file = $_FILES ['file_stu'] ['tmp_name'];
$file_types = explode(".", $_FILES ['file_stu'] ['name']);
$file_type = $file_types [count($file_types) - 1];
/*判别是不是.xls文件,判别是不是excel文件*/
if (strtolower($file_type) != "xls" && strtolower($file_type) != "xlsx") {
$this->error('不是Excel文件,重新上传');
}
/*这里是用了ThinkPHP3.2.3的上传类*/
$config = array(
'exts' => array('xlsx', 'xls'),
'maxSize' => 3145728000,
'rootPath' => "./Public/", //上传的主目录
'savePath' => 'Uploads/', //上传的子目录
'subName' => array('date', 'Ymd'), //子子目录
);
$upload = new \Think\Upload($config);
//这面这一句是设置上传的文件名 pathinfo函数也可以了解一下
// $upload ->saveName = $file_types [count ( $file_types ) - 2];
if (!$info = $upload->upload()) {
$this->error($upload->getError());
}
if (!$info) {// 上传错误提示错误信息
$this->error($upload->getError());
} else {// 上传成功
// $this->success('上传成功!');
}
/*
这里引入PHPExcel类
*/
vendor("PHPExcel.PHPExcel");
/*
获取文件地址
*/
$file_name = $upload->rootPath . $info['file_stu']['savepath'] . $info['file_stu']['savename'];
$extension = strtolower(pathinfo($file_name, PATHINFO_EXTENSION));
//判断导入表格后缀格式 采用不同的加载方式
if ($extension == 'xlsx') {
$objReader = \PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel = $objReader->load($file_name, $encode = 'utf-8');
} else if ($extension == 'xls') {
$objReader = \PHPExcel_IOFactory::createReader('Excel5');
$objPHPExcel = $objReader->load($file_name, $encode = 'utf-8');
}
/*
获取Excel的内容
*/
$sheet = $objPHPExcel->getSheet(0);
$row = $sheet->getHighestRow();//取得总行数
$column = $sheet->getHighestColumn(); //取得总列数
一般你的逻辑操作这里更改           
//前面小写的k是表中的字段名,后面的大写A是excel中位置
一般你的逻辑操作这里更改
//前面小写的k是表中的字段名,后面的大写A是excel中位置
$data['k'] = $objPHPExcel->getActiveSheet()->getCell("A" . $i)->getValue();
$data['v'] = $objPHPExcel->getActiveSheet()->getCell("B" . $i)->getValue();
//kv是数据库中的表
$add = M('kv')->add($data);
}
}
}
//导出excel
public function exportExcel()
{
vendor('PHPExcel.PHPExcel');
$objPHPExcel = new \PHPExcel(); //这里要注意‘\’ 要有这个。因为版本是3.1.2了。
$objDrawing = new \PHPExcel_Worksheet_Drawing();
$objWriter = new \PHPExcel_Writer_Excel5($objPHPExcel); //设置保存版本格式
//接下来就是写数据到表格里面去 一般你
$user = M('kv');
$list = $user->order('id desc')->select();
foreach ($list as $key => $value) {
$i = $key + 1;//表格是从1开始的
$objPHPExcel->getActiveSheet()->setCellValue('A' . $i, $value['k']);
//这里是设置A1单元格的内容
$objPHPExcel->getActiveSheet()->setCellValue('B' . $i, $value['v']);
这里是设置B1单元格的内容
}
//接下来当然是下载这个表格了,在浏览器输出就好了
ob_end_clean();//清除缓冲区,避免乱码 还有一个导出报错的是版本低的问题,可以删掉对应那行的break即可
header("Pragma: public");
header("Expires: 0");
header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
header("Content-Type:application/force-download");
header("Content-Type:application/vnd.ms-execl");
header("Content-Type:application/octet-stream");
header("Content-Type:application/download");;
header('Content-Disposition:attachment;filename=' . date('YmdHis') . '.xls');
header("Content-Transfer-Encoding:binary");
header("Content-type:application/vnd.ms-excel");
$objWriter->save(date('YmdHis') . '.xls');
$objWriter->save('php://output');
}
  • 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、付费专栏及课程。

余额充值