Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 
 
 
 
 

57 řádky
1.6 KiB

  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: wangxj
  5. * Date: 2017/5/31
  6. * Time: 10:50
  7. */
  8. /**
  9. * @property string $file_name
  10. */
  11. namespace common\components;
  12. require_once '../../backend/common/PHPExcel/PHPExcel.php';
  13. class zPhpExcel extends \PHPExcel
  14. {
  15. public $file_name;
  16. //输出到浏览器
  17. public function output()
  18. {
  19. $objWrite = \PHPExcel_IOFactory::createWriter($this, 'Excel5'); //按照指定格式生成excel文件
  20. $this->browserExport('07', $this->file_name . '.xls');
  21. $objWrite->save('php://output');
  22. }
  23. //head头
  24. private function browserExport($type, $fileName)
  25. {
  26. if ($type == '05') { //输出xls文件
  27. header('Content-Type: application/vnd.ms-excel');
  28. } else { //输出xlsx文件
  29. header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
  30. }
  31. header('Content-Disposition: attachment;filename="' . $fileName . '"');
  32. header('Cache-Control: max-age=0');//禁止缓存
  33. }
  34. //设置自动宽度,中文支持的不好,基本不能用
  35. public function setAutoSize($range)
  36. {
  37. foreach ($range as $columnID) {
  38. $this->getActiveSheet()->getColumnDimension($columnID)
  39. ->setAutoSize(true);
  40. }
  41. }
  42. //手动设置宽度 一个中文对应3 “出车日期” 4*3 12
  43. public function setColumnSize($range, $width)
  44. {
  45. foreach ($range as $key => $columnID) {
  46. $this->getActiveSheet()->getColumnDimension($columnID)
  47. ->setWidth($width[$key]);
  48. }
  49. }
  50. }