Rumah php教程 php手册 Thinkphp+phpexcel导出和导入

Thinkphp+phpexcel导出和导入

Jun 07, 2016 am 11:38 AM

在网上找了很多excel导出和导入示例,代码不是很简洁,很多出错,自己在excel方法和控制器改了下。
首先我们看下导出的HTML<a>导出</a>接着我们看下Index/excelExport 导出的PHP代码:$list = M("user")-&gt;field("id,username,password")-&gt;order("id DESC")-&gt;limit(50)-&gt;select(); <br> $title = array('ID', '用户名', '密码'); //设置要导出excel的表头 <br> exportExcel($list, '素材火', $title);exportExcel方法如下:function exportExcel($data, $savefile = null, $title = null, $sheetname = 'sheet1') { <br>     import("Org.Util.PHPExcel"); <br>     //若没有指定文件名则为当前时间戳 <br>     if (is_null($savefile)) { <br>         $savefile = time(); <br>     } <br>     //若指字了excel表头,则把表单追加到正文内容前面去 <br>     if (is_array($title)) { <br>         array_unshift($data, $title); <br>     } <br>     $objPHPExcel = new \PHPExcel(); <br>     //Excel内容 <br>     $head_num = count($data); <br>  <br>     foreach ($data as $k =&gt; $v) { <br>         $obj = $objPHPExcel-&gt;setActiveSheetIndex(0); <br>         $row = $k + 1; //行 <br>         $nn = 0; <br>  <br>         foreach ($v as $vv) { <br>             $col = chr(65 + $nn); //列 <br>             $obj-&gt;setCellValue($col . $row, $vv); //列,行,值 <br>             $nn++; <br>         } <br>     } <br>     //设置列头标题 <br>     for ($i = 0; $i          $alpha = chr(65 + $i); <br>         $objPHPExcel-&gt;getActiveSheet()-&gt;getColumnDimension($alpha)-&gt;setAutoSize(true); //单元宽度自适应  <br>         $objPHPExcel-&gt;getActiveSheet()-&gt;getStyle($alpha . '1')-&gt;getFont()-&gt;setName("Candara");  //设置字体 <br>         $objPHPExcel-&gt;getActiveSheet()-&gt;getStyle($alpha . '1')-&gt;getFont()-&gt;setSize(12);  //设置大小 <br>         $objPHPExcel-&gt;getActiveSheet()-&gt;getStyle($alpha . '1')-&gt;getFont()-&gt;getColor()-&gt;setARGB(PHPExcel_Style_Color::COLOR_BLACK); //设置颜色 <br>         $objPHPExcel-&gt;getActiveSheet()-&gt;getStyle($alpha . '1')-&gt;getAlignment()-&gt;setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //水平居中 <br>         $objPHPExcel-&gt;getActiveSheet()-&gt;getStyle($alpha . '1')-&gt;getAlignment()-&gt;setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); //垂直居中 <br>         $objPHPExcel-&gt;getActiveSheet()-&gt;getStyle($alpha . '1')-&gt;getFont()-&gt;setBold(true); //加粗 <br>     } <br>  <br>     $objPHPExcel-&gt;getActiveSheet()-&gt;setTitle($sheetname); //题目 <br>     $objPHPExcel-&gt;setActiveSheetIndex(0); //设置当前的sheet   <br>     header('Content-Type: application/vnd.ms-excel'); <br>     header('Content-Disposition: attachment;filename="' . $savefile . '.xls"'); //文件名称 <br>     header('Cache-Control: max-age=0'); <br>     $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); //Excel5 Excel2007 <br>     $objWriter-&gt;save('php://output'); <br> }接着我们看下导入的表单:<form> <br>     <div> <br>         <label>Excel表格:</label> <br>         <input> <br>     </div> <br>     <div> <br>         <input> <br>     </div> <br> </form>thinkphp上传Index/upload:$upload = new \Think\Upload(); // 实例化上传类 <br> $upload-&gt;maxSize = 3145728; // 设置附件上传大小 <br> $upload-&gt;exts = array('xls', 'xlsx'); // 设置附件上传类 <br> $upload-&gt;savePath = '/'; // 设置附件上传目录 <br> // 上传文件 <br> $info = $upload-&gt;uploadOne($_FILES['file']); <br> $filename = 'Uploads' . $info['savepath'] . $info['savename']; <br> $exts = $info['ext']; <br> if (!$info) {// 上传错误提示错误信息 <br>     $this-&gt;error($upload-&gt;getError()); <br> } else {// 上传成功 <br>     $this-&gt;goods_import($filename, $exts); <br> }goods_import导入方法:function goods_import($filename, $exts = 'xls') { <br>     //导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入 <br>     import("Org.Util.PHPExcel"); <br>     //创建PHPExcel对象,注意,不能少了\ <br>     $PHPExcel = new \PHPExcel(); <br>     //如果excel文件后缀名为.xls,导入这个类 <br>  <br>     if ($exts == 'xls') { <br>         import("Org.Util.PHPExcel.Reader.Excel5"); <br>         $PHPReader = new \PHPExcel_Reader_Excel5(); <br>     } else if ($exts == 'xlsx') { <br>         import("Org.Util.PHPExcel.Reader.Excel2007"); <br>         $PHPReader = new \PHPExcel_Reader_Excel2007(); <br>     } <br>     //载入文件 <br>     $PHPExcel = $PHPReader-&gt;load($filename); <br>     //获取表中的第一个工作表,如果要获取第二个,把0改为1,依次类推 <br>     $currentSheet = $PHPExcel-&gt;getSheet(0); <br>     //获取总列数 <br>     $allColumn = $currentSheet-&gt;getHighestColumn(); <br>     //获取总行数 <br>     $allRow = $currentSheet-&gt;getHighestRow(); <br>     //循环获取表中的数据,$currentRow表示当前行,从哪行开始读取数据,索引值从0开始 <br>     for ($currentRow = 1; $currentRow          //从哪列开始,A表示第一列 <br>         for ($currentColumn = 'A'; $currentColumn              //数据坐标 <br>             $address = $currentColumn . $currentRow; <br>             //读取到的数据,保存到数组$arr中 <br>             $data[$currentRow][$currentColumn] = $currentSheet-&gt;getCell($address)-&gt;getValue(); <br>         } <br>     } <br>     $this-&gt;save_import($data); <br> }phpexcel导入和导出演示下载:http://www.sucaihuo.com/php/140.html

AD:真正免费,域名+虚机+企业邮箱=0元

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Ketahui tentang contoh kod pengenalan untuk pengaturcaraan Python Ketahui tentang contoh kod pengenalan untuk pengaturcaraan Python Jan 04, 2024 am 10:50 AM

Ketahui tentang contoh kod pengenalan untuk pengaturcaraan Python

Pembolehubah PHP dalam tindakan: 10 contoh penggunaan sebenar Pembolehubah PHP dalam tindakan: 10 contoh penggunaan sebenar Feb 19, 2024 pm 03:00 PM

Pembolehubah PHP dalam tindakan: 10 contoh penggunaan sebenar

Cara menggunakan PHP untuk menulis kod fungsi pengurusan inventori dalam sistem pengurusan inventori Cara menggunakan PHP untuk menulis kod fungsi pengurusan inventori dalam sistem pengurusan inventori Aug 06, 2023 pm 04:49 PM

Cara menggunakan PHP untuk menulis kod fungsi pengurusan inventori dalam sistem pengurusan inventori

Daripada pemula hingga mahir: Pelaksanaan kod struktur data yang biasa digunakan dalam bahasa Go Daripada pemula hingga mahir: Pelaksanaan kod struktur data yang biasa digunakan dalam bahasa Go Mar 04, 2024 pm 03:09 PM

Daripada pemula hingga mahir: Pelaksanaan kod struktur data yang biasa digunakan dalam bahasa Go

Java melaksanakan kod isihan gelembung mudah Java melaksanakan kod isihan gelembung mudah Jan 30, 2024 am 09:34 AM

Java melaksanakan kod isihan gelembung mudah

Contoh pengaturcaraan bahasa Go: contoh kod dalam pembangunan web Contoh pengaturcaraan bahasa Go: contoh kod dalam pembangunan web Mar 04, 2024 pm 04:54 PM

Contoh pengaturcaraan bahasa Go: contoh kod dalam pembangunan web

Panduan Sambungan Pengkomputeran Tepi Awan Huawei: Contoh kod Java untuk melaksanakan antara muka dengan cepat Panduan Sambungan Pengkomputeran Tepi Awan Huawei: Contoh kod Java untuk melaksanakan antara muka dengan cepat Jul 05, 2023 pm 09:57 PM

Panduan Sambungan Pengkomputeran Tepi Awan Huawei: Contoh kod Java untuk melaksanakan antara muka dengan cepat

Panduan dan Contoh: Belajar untuk melaksanakan algoritma isihan pemilihan dalam Java Panduan dan Contoh: Belajar untuk melaksanakan algoritma isihan pemilihan dalam Java Feb 18, 2024 am 10:52 AM

Panduan dan Contoh: Belajar untuk melaksanakan algoritma isihan pemilihan dalam Java

See all articles