资讯专栏INFORMATION COLUMN

PHP WORLD的正确操作姿势

iflove / 1507人阅读

摘要:导出下载最新类库添加默认页定义样式第一行样式定义列样式使用的第二个参数来给单元格设置样式为第一行定义字体样式添加样式添加表格仿宋全局字体全局字号为号添加行的高度添加列品牌品牌名称父类状态添加时间图片准备数

PHP导出WORLD

1、下载最新PHPWORD 类库 http://phpword.codeplex.com/

createSection();//添加默认页
        //定义table样式
        $styleTable = array("borderSize"=>6,"borderColor"=>"006699","cellMargin"=>80);//第一行样式
        $styleFirstRow = array("borderBottomSize"=>18,"borderBottomColor"=>"0000FF","bgColor"=>"66BBFF");//定义列样式
        $styleCell = array("valign"=>"center");        //使用addCell的第二个参数来给单元格设置样式
        //$styleCellBTLR = array("valign"=>"center", "textDirection"=>PHPWord_Style_Cell::TEXT_DIR_BTLR);
        //为第一行定义字体样式
        $fontStyle = array("bold"=>true, "align"=>"center");        //添加table样式
        $PHPWord->addTableStyle("myOwnTableStyle", $styleTable, $styleFirstRow);        //添加表格table
        $table = $section->addTable("myOwnTableStyle");        
        $PHPWord->setDefaultFontName("仿宋"); // 全局字体
        $PHPWord->setDefaultFontSize(16);     // 全局字号为3号
        //添加行的高度
        $table->addRow(900);        //添加列
        $table->addCell(1000, $styleCell)->addText("品牌id", $fontStyle);        
            $table->addCell(2000, $styleCell)->addText("品牌名称", $fontStyle);        
            $table->addCell(1000, $styleCell)->addText("父类", $fontStyle);        
            $table->addCell(1000, $styleCell)->addText("状态", $fontStyle);        
            $table->addCell(2000, $styleCell)->addText("添加时间", $fontStyle);        
            $table->addCell(4000, $styleCell)->addText("图片", $fontStyle);        
        //准备数据
        $brand = M("Brand");        
            $where = "status = "1"";        
            $list = $brand->where($where)->order("id desc")->limit($page->firstRow.",".$page->listRows)->select();        
            //dump($list);exit;
        //遍历数据
        foreach ($list as $k=>$v){            
                $table->addRow();            
                $table->addCell(2000)->addText($v["id"]);            
                $table->addCell(2000)->addText($v["name"]);            
                $table->addCell(2000)->addText($v["pid"]);            
                $table->addCell(2000)->addText($v["status"]);            
                $table->addCell(2000)->addText($v["addtime"]);            
                $table->addCell(2000)->addText($v["logo"]);
        }        
        $objWriter = PHPWord_IOFactory::createWriter($PHPWord, "Word2007");        
                $objWriter->save("AdvancedTable.docx");        
                $fileName = "word报表".date("YmdHis");
        header("Content-type: application/vnd.ms-word");
        header("Content-Disposition:attachment;filename=".$fileName.".docx");
        header("Cache-Control: max-age=0");        
        $objWriter = PHPWord_IOFactory::createWriter($PHPWord, "Word2007");        
        $objWriter->save("php://output");
        
    }

注意:
如果中文出现乱码后,我们就做以下操作吧,简单的是直接添加转化代码,但多了就会很臃肿,治标不治本呀!

$title = iconv("utf-8","GB2312//IGNORE","我要中文不乱码");

2.情况一
    a) /Writer/Word2007/Base.php文件内容349行,添加 $objWriter->writeAttribute("w:eastAsia", $font); // 添加这行
    b) Section.php中找到代码$givenText = utf8_encode($text);,删除或者注释掉这行代码,添加$givenText = iconv("gbk", "utf-8", $text);
    c) 同时编辑PHPWord/Template.php,找到代码$replace = utf8_encode($replace);,删除或者注释掉这行代码,添加$replace = iconv( "gbk","utf-8", $replace);
    d) $section->addText(iconv("utf-8","GB2312//IGNORE",$st));

3.解决注册不了,与框架冲突(new 不到对象)

public static function Register() {
   return spl_autoload_register(array("PHPWord_Autoloader", "Load"));
}

修改为

public static function Register() {
       $functions = spl_autoload_functions();
       if($functions){
           foreach ($functions as $v){
               spl_autoload_unregister($v);
           }
           $functions = array_merge(array(array("PHPWord_Autoloader", "Load")),$functions);
           foreach ($functions as $v){
               spl_autoload_register($v);
           }
       }else{
           spl_autoload_register(array("PHPWord_Autoloader", "Load"));
       }
}

也可以关注公众号,里面也有推些新的内容!

欢迎吐槽交流。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/29135.html

相关文章

  • 页面我做主——浏览器去广告正确姿势

    摘要:简单高效的自定义方式对于这些情况我们可以使用一个强大的浏览器插件,简称,中文俗称为油猴,支持和浏览器。简单几行代码,就可以去除大部分页面广告。声明需要使用的函数。 会CSS就会去广告~ 传统去广告方法的弊端 我们浏览网页的时候经常不免会看到各种不想看到的广告内容,最简单的方案就是通过浏览器插件来解决,比如大名鼎鼎的AdBlock插件以及国内的各种广告拦截助手。 但这些插件的拦截能力可...

    iamyoung001 评论0 收藏0
  • 页面我做主——浏览器去广告正确姿势

    摘要:简单高效的自定义方式对于这些情况我们可以使用一个强大的浏览器插件,简称,中文俗称为油猴,支持和浏览器。简单几行代码,就可以去除大部分页面广告。声明需要使用的函数。 会CSS就会去广告~ 传统去广告方法的弊端 我们浏览网页的时候经常不免会看到各种不想看到的广告内容,最简单的方案就是通过浏览器插件来解决,比如大名鼎鼎的AdBlock插件以及国内的各种广告拦截助手。 但这些插件的拦截能力可...

    20171112 评论0 收藏0
  • 成为PHP程序员正确姿势

    摘要:因为这对于一个刚参加工作的工程师来说,这有可能就是一月和一个月的区别了。多编写网站编程说到底其实也就是一门手艺,就对于智商差不多的程序员来说,技艺的高超程度往往就在于练的多少了。 利益相关:以下的所有文字都是仅代表个人观点,不代表全组织的利益。 本人就是一大三狗,自学PHP时间已经快两年了,感觉自己还是一个入门级的选手。说说自己是如何一步步走过来的。 1. 官方文档 对,我还是坚...

    mikyou 评论0 收藏0
  • php学习之留言板

    摘要:用到对数据进行删除,具体请看的编写相关姿势有发送请求字符串模板页面元素内容赋值请求返回到这,整体结构就完成了。 前言 在对php语法有一定了解之后开始,这是第一个php练手项目,涵盖的知识有 公共部分的引用 表单的提交 请求的接收与响应 interface+implements的使用 基于文件的所处理的增删改查 json的格式化与字符串序列化 项目地址message boardps...

    biaoxiaoduan 评论0 收藏0

发表评论

0条评论

iflove

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<