thinkphp5.0 如何导入phpexcel插件,能详细些点吗

thinkphp5.0 如何导入phpexcel插件,能详细些点吗,第1张

下载phpexcel,将整个文件夹放到vendor文件夹里面,如下图

在控制器中的使用方法

        vendor("PHPExcel.PHPExcel")

        $objPHPExcel = new \PHPExcel()

        $file_name = date('YmdHis').'.xls'

        header("Content-Disposition:attachment filename=".$file_name)

        $objActSheet = $objPHPExcel->getActiveSheet()->setTitle('成绩单')

        $objActSheet->SetCellValue('A1', 'ID')

        $objActSheet->SetCellValue('B1', '名称')

        $objActSheet->SetCellValue('C1', '分数')

        $list = ""//数据列表

        if($list){

            foreach ($list as $k => $v){

                $i = $k + 2

                $objActSheet->SetCellValue('A'.$i,''. $v['id'])

                $objActSheet->SetCellValue('B'.$i,''. $v['name'])

                $objActSheet->SetCellValue('C'.$i,''. $v['score'])

            }

            $objWriter = new \PHPExcel_Writer_Excel5($objPHPExcel)

            $objWriter->save('php://output')//输出到浏览器

            exit

        }

首先,介绍下本编辑器

本编辑器是thinkphp(简称tp)官方2010年某位大侠所创架构、用jquery写的,后又经历成立夫之手完成,我只是写了标签库、及本日志,本人接手后,水平有限、又没 有时间,尚未搞懂它的具体流程,今后将由左家梓(网名麦当苗儿)这位曾经和kindeditor官方人员接触的js大侠完善,当然网友也可以贡献力量,提 出建议,和贡献插件

其次,使用thinkeditor必须注意三个地方:

1.本编辑器只适用于tp(上传的地方TP写法,其他框架使用自行修改)。js部分的引用写成了标签库。

2.使用本编辑器的人都要有大无畏的冒险精神,爱折腾,因为本编辑器尚未完善,不能称的上专业。

3.本编辑器只提供大部分网站基本的编辑器的功能,排版、文章中能显示图片flash;插入视频插件未开发。有待广大网友的鼎力帮助。

如何使用本编辑器?

首先,下载整个编辑器的压缩包。

然后,解压,将thinkeditor文件夹放入你的项目公共资源目录/Public下。

并将其中的标签TagLibTp.class.php放入项目的Lib\TagLib\下,并根据框架版本在配置中配置引入的插件路径。(2.2和3.0使用方式会有不同)。

再然后,在模板引用的地方加上<taglib name="tp" />

在head位置加上

<tp:editor id="textContent" uploadURL="/Public/editor_up" width="600"></tp:editor>

这里先说几个参数id是你要替换的textarea的id,uploadURL是上传处理的方法,width是编辑器的宽,可以以px表示,也可以用百分表表示 如width = "100%",因此要单位,其他的参数不需要写单位的。

其他参数的话,参考标签库和说明文档。

然后给项目添加编辑器的上传方法。

如blog中的PublicAction.class.php中的写法

public function editor_up(){

//$savePath 为项目下的上传目录名 如 uploads 会是 上传到__ROOR__/uploads下,为空则上传到__ROOT__/uploads/thinkeditor下

// $saveRule为上传文件命名规则,例如可以是 time uniqid com_create_guid 等,例如可以是 time uniqid com_create_guid 等 默认为time参考tp的上传类

// 例如可以是 time uniqid com_create_guid 等

$savePath = 'uploads'

$saveRule = 'time'

import("@.ORG.UploadFile")

$savePath = ($savePath)? './'.$savePath : './Uploads/thinkeditor'

$savePath = (substr($savePath,-1)!='/')?$savePath.'/':$savePath

$maxSize = ($_POST['temaxsize'])? $_POST['temaxsize'] : -1

$upload = new UploadFile($maxSize,'','',$savePath,$saveRule)

//传给js的参数 $savepath是上传的文件的生成路径,$isupload是上传是否成功的布尔值

$savepath = ''

$isupload = 'false'

if(strtolower($_SERVER['REQUEST_METHOD']) == 'post') {

$info = $upload->uploadOne($_FILES['teupload'])

if($info){

$isupload = 'true'

$savepath = $upload->savePath.$info[0]['savename']

$savepath = substr($savepath, 1)

}else{

$error = $upload->getErrorMsg()

}

}

import('@.TagLib.TagLibTp')

//上面的上传只是写个例子,用户上传可以自定义的,但是下面的是传给编辑器的

//参数必须为$isupload,是否成功,上传后的文件相对路径$savepath必须相对于项目根目录的,错误信息

TagLibTp::think_upload($isupload,$savepath,$error)

}

有能力的童鞋可以自己写上传方法,只要最后自己调用TagLibTp::think_upload($isupload,$savepath,$error)传入对应的参数即可,就可以使用本编辑器了。效果如图:

本编辑器内写了的自动刷新,保存文本时就不用调用方法保存了。还有标签调用时写了jquery的防冲突模式,因此其他类库可以与之同时使用。

至于插件的开发,看说明文档。我在plugins\system.js里写了个实现d窗输入thinkphp的eq标签的

name 和value值后生成thinkphp eq 标签的插件,去掉注释,在thinkeditor.js里defaults配置里controls里加上eq,

这行去掉注释,应该就能出来了。不过我没加样式,用的html源码的图标。开发起来不难的,相信凭着大家的创造力,可以开发出很多编辑器的插件的.。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11759004.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存