thinkphp5,phpExcel导出,getDataValidation网页可能暂时无法连接,或者它已永久性地移动到了新网址。
taotaoit ThinkPHP5.1 2024-03-06 677 0
关于本站

“最难不过坚持”

本人承接扒站仿站,php网站维护,病毒查杀,网站编辑,网站改版,html制作

有需要网站维护,改版,病毒查杀,网站编辑,网站备案,html制作等相关的工作可以联系我。
本人有多年相关工作经验,也可提供免费咨询,交个朋友。
有需要探讨问题的朋友,也可以加我微信,共同探讨!
微信:15011482830 QQ:408917339

7500180 2655 39
最新评论
https://jueru.net/
评 留言
:weixiao:
评 留言
:shuijiao: :weiqu: :zhenbang: :leng:
评 留言
:yiwen: :yiwen: :yiwen: :yiwen:
评 EasySass: could not generate CSS file. See Output panel for details.
这个业务逻辑多少都有点奇怪了,阅读浏览次数增值在新闻详情页的控制器方法里setInc,这怎么还写进模型事件里了。如果非要用onAfterRead也可以,把新闻文章的内容单独分出来一个news_content表,然后把它和news做关联,然后给news_content表的onAfterRead事件做增值处理,这样点进新闻页内查询到文章内容时才会触发它。
评 TP6模型事件-查询后onAfterRead不好用
文章标签更多
ThinkPHP (254)
Mysql (58)
DedeCms (33)
jQuery (67)
证件照 (1)
setInc (4)
setDec (4)
onclick (5)
打开边栏(ESC) 关闭边栏(ESC)

做excel导出,下拉选项

from clipboard

thinkphp5,phpExcel导出,getDataValidation网页可能暂时无法连接,或者它已永久性地移动到了新网址。

from clipboard

这是为什么呢?也看不到具体错误。

1,首先要看到具体错误,使用$objWriter->save('1.xls');die;这种方法查看到具体错误

from clipboard

2,具体错误$options |= $errorStyle << 4;

from clipboard

3,搜索$options |= $errorStyle << 4;可以知道错误位置在extend\phpexcel\PHPExcel\Writer\Excel5\Worksheet.php 2869行

from clipboard

4,这是位运算,为什么会报错呢?不明白,把整个这一段注释掉,神奇的事情发生了,可以正常导出excel了

5,本来想就这样就可以了,但是忽然想看看echo $options; echo $errorStyle;die;到底是什么内容

然后导出到excel是

from clipboard

$options是3

$errorStyle是list

忽然意识到$errorStyle怎么可能是list呢?它只要3个值啊,stop,warning,information其中之一才对

from clipboard

然后就发现了

$errorStyle = $dataValidation->getType();

$errorStyle怎么获取的是type的值呢?

应该获取getErrorStyle();

才对啊。

改了之后果然没问题了

$errorStyle = $dataValidation->getErrorStyle();

不知道这个错误怎么出现的,网上别人复制的代码,也有这个问题。


附phpExcel导出,且有下拉选项,完整代码

$name = $name.date('YmdHis');
    require \Env::get('root_path') . 'extend/phpexcel/PHPExcel.php';

		$objPHPExcel = new \PHPExcel();
		// 设置excel文档的属性
		$objPHPExcel->getProperties()
			->setCreator("zhtmall")//创建人
			->setLastModifiedBy("zhtmall")//最后修改人
			->setTitle($name)//标题
			->setSubject($name)//题目
			->setDescription($name)//描述
			->setKeywords($name)//关键字
			->setCategory($name);//种类

		// 开始操作excel表
		$objPHPExcel->setActiveSheetIndex(0);
		// 设置工作薄名称
		$objPHPExcel->getActiveSheet()->setTitle(iconv('gbk', 'utf-8', 'Sheet'));
		// 设置默认字体和大小
		$objPHPExcel->getDefaultStyle()->getFont()->setName(iconv('gbk', 'utf-8', ''));
		$objPHPExcel->getDefaultStyle()->getFont()->setSize(11);
		$styleArray = array(
				'font' => array(
						'bold' => true,
						'color'=>array(
								'argb' => 'ffffffff',
						)
				)
		);
    //设置宽
    $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20);
    $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20);
    $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(60);
    $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(30);
    $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(30);
    $objRow = $objPHPExcel->getActiveSheet()->getStyle('A1:E1');
		$objRow->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID);
		$objRow->getFill()->getStartColor()->setRGB('666699');
		$objRow->getAlignment()->setVertical(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
		$objRow->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
		$objPHPExcel->getDefaultStyle()->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
		$objPHPExcel->getDefaultStyle()->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
		$objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(25);
    $objPHPExcel->getActiveSheet()
      ->setCellValue('A1', '订单编号')
      ->setCellValue('B1', '订单商品编号')
      ->setCellValue('C1', '商品名称')
      ->setCellValue('D1', '快递公司')
      ->setCellValue('E1', '快递单号');
    $objPHPExcel->getActiveSheet()->getStyle('A1:E1')->applyFromArray($styleArray);
    for ($row = 0; $row < count($rs); $row++){
      $i = $row+2;
      $objPHPExcel->getActiveSheet()
        ->setCellValue('A'.$i, $rs[$row]['orderNo'])
        ->setCellValue('B'.$i, $rs[$row]['id'])
        ->setCellValue('C'.$i, $rs[$row]['goodsTitle']);
      $objPHPExcel->getActiveSheet()->getStyle('C'.$i)->getAlignment()->setWrapText(true);
      $objPHPExcel->getActiveSheet()->getStyle('C'.$i)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
      $objValidation = $objPHPExcel->getActiveSheet()->getCell('D'.$i)->getDataValidation();
      $objValidation->setType(\PHPExcel_Cell_DataValidation::TYPE_LIST )
        ->setErrorStyle(\PHPExcel_Cell_DataValidation::STYLE_STOP )
        ->setAllowBlank(true)
        ->setShowInputMessage(true)
        ->setShowErrorMessage(true)
        ->setShowDropDown(true)
        ->setErrorTitle('输入的值有误')
        ->setError('您输入的值不在下拉框列表内.')
        ->setPromptTitle('')
        ->setPrompt('')
        ->setOperator(\PHPExcel_Cell_DataValidation::OPERATOR_BETWEEN)
        ->setFormula1('"' . implode(',',$shopExpressList) . '"');
    }

    $objPHPExcel->getActiveSheet()->getStyle('A1:E'.(count($rs)+1))->applyFromArray(array(
        'borders' => array (
            'allborders' => array (
                'style' => \PHPExcel_Style_Border::BORDER_THIN,  //设置border样式
                'color' => array ('argb' => 'FF000000'),     //设置border颜色
            )
        )
    ));
    $this->PHPExcelWriter($objPHPExcel,$name);
这段要注意,不然可能会出错

from clipboard

版权声明:本站原创文章,允许自由转载。

相关推荐
Non-static method think\Config::get() should not be called statically
ThinkPHP5.1 | 2018-12-29 10973
原来是这样use think\Config; 改成这样use think\facade\Config; 下面是官方手册的解释 配置获取 要使用Config类,首先需要在你的类文件中引入 use think\facade\Config; 或者(因为系统做了类库别名,其实就是调用think\facade\Config) u...
thinkPHP5 order多条件排序
ThinkPHP5.1 | 2017-10-24 10835
总结如下: //单一条件排序 $user = $this->where(['parentId'=>0)->field('userId,userName,userSort,isShow')->order('userSort', 'asc')->select(); //多个条件排序,可以多加一个order...
评论:0条
评论加载中...
发表评论