大家推荐一个PHP生成excel文件的东东吧。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
meteor2013
V2EX    PHP

大家推荐一个PHP生成excel文件的东东吧。

  •  
  •   meteor2013 2013-07-04 01:22:19 +08:00 5188 次点击
    这是一个创建于 4484 天前的主题,其中的信息可能已经有所发展或是发生改变。
    简单,好用
    23 条回复    1970-01-01 08:00:00 +08:00
    CoX
        1
    CoX  
       2013-07-04 02:16:28 +08:00   1
    有个东东就叫phpExcel,还不错
    meteor2013
        2
    meteor2013  
    OP
       2013-07-04 02:55:08 +08:00
    @CoX 谢谢啊。试了一下phpExcel. 的确不错,还挺好用的。
    但是看了一下协议是 LGPL。 请问能随便拿来商用吗?
    meteor2013
        3
    meteor2013  
    OP
       2013-07-04 02:59:16 +08:00
    这是phpExcel 的协议:好像读起来没有限制商业用途啊?
    GNU 和 LGPL ?


    * This library is free software; you can redistribute it and/or
    * modify it under the terms of the GNU Lesser General Public
    * License as published by the Free Software Foundation; either
    * version 2.1 of the License, or (at your option) any later version.
    *
    * This library is distributed in the hope that it will be useful,
    * but WITHOUT ANY WARRANTY; without even the implied warranty of
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    * Lesser General Public License for more details.
    *
    * You should have received a copy of the GNU Lesser General Public
    * License along with this library; if not, write to the Free Software
    * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
    *
    * @category PHPExcel
    * @package PHPExcel
    * @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel)
    * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL
    * @version 1.7.9, 2013-06-02
    holystrike
        4
    holystrike  
       2013-07-04 07:43:15 +08:00 via iPhone
    如果仅仅是查看表格的话,直接用 fputcsv 输出csv最省事
    meteor2013
        5
    meteor2013  
    OP
       2013-07-04 08:32:44 +08:00 via iPhone
    @holystrike 需要生成excel标准文件。
    gDD
        6
    gDD  
       2013-07-04 08:37:54 +08:00
    之前同事的做法是直接写<style></style><table></table>,然后存成xls后缀,Excel也能认识,很有想象力。。。
        7
    lucky215  
       2013-07-04 08:39:25 +08:00
    @gDD 这种方法不标准,如果需要再解析这样生成的文件是很麻烦的。
    meteor2013
        8
    meteor2013  
    OP
       2013-07-04 08:43:46 +08:00 via iPhone
    @gDD 行是行,但是做成的文件兼容性有点问题。以前试过,在某些版本的excel 上可以打开,有些不能。在某个Mac 的excel上出现少数乱码。
    moxuanyuan
        9
    moxuanyuan  
       2013-07-04 08:56:51 +08:00
    @gDD http://www.cnblogs.com/cannel/archive/2011/06/30/2094189.html 你说的就是这种方法,我也常用,直接当成模版,输出成文件,很方便
    iscraft
        10
    iscraft  
       2013-07-04 10:06:46 +08:00
    最近在用网上找来的这段东西
    <?
    session_start();
    header("Content-type:application/vnd.ms-excel");
    header("Content-Disposition:attachment;filename=lesson_list_data.xls");
    include "./s/inc.php";
    include "./s/fun.php";

    $sql = $_GET[code];
    //$tx='表头';
    //echo $tx."\n\n";
    //输出内容如下:
    echo "序号"."\t";
    echo "课程名称"."\t";
    echo "专题名称"."\t";
    echo "年度"."\t";
    echo "季度"."\t";
    $list=l($sql);
    foreach ($list as $key=>$ll)
    {
    echo "\n";
    echo $now_num=($key+1)."\t";
    echo $ll[lessonname]."\t";
    echo show_subject_name($ll[subject])."\t";
    echo $ll[year]."\t";
    if ($ll[season]=='1'){echo "春季"."\t";}
    if ($ll[season]=='2'){echo "秋季"."\t";}
    }
    ?>
    导入用PHPExcel
    voidman
        11
    voidman  
       2013-07-04 10:14:37 +08:00
    recih
        12
    recih  
       2013-07-04 10:52:04 +08:00
    excel 对 CSV 的支持不好,不支持 utf-8 编码。
    可以保存成 XML Spreadsheet,excel 能够直接双击打开。具体格式可 google “XML Spreadsheet”
    另外也可以把一个 xslx 用excel另存为 “XML 电子表格 2003” 格式来研究下格式
    shiny
        13
    shiny  
       2013-07-04 11:05:34 +08:00
    以前写过基于 XML 的Excel 格式,好处是简单,兼容性还不错,而且可以自定义某些单元格的格式和样式。同楼上,可以自己搜索下。
    https://gitcafe.com/daijie/php_xml_excel/blob/master/xml_excel.php
    meteor2013
        14
    meteor2013  
    OP
       2013-07-04 11:31:50 +08:00 via iPhone
    看来大家用PHPexcel 还不少,这东西的确也挺方便的。

    但是大家觉得PHPexcel可以拿来做商业用途吗?
    loveminds
        15
    loveminds  
       2013-07-04 11:38:44 +08:00 via iPhone
    @gDD
    @meteor2013
    @moxuanyuan
    @lucky215
    估计你们指的是xlsx
    meteor2013
        16
    meteor2013  
    OP
       2013-07-04 11:44:02 +08:00 via iPhone
    @loveminds xlsx 和 xls

    顺便说一句,loveminds的头像好漂亮。
    loveminds
        17
    loveminds  
       2013-07-04 12:11:11 +08:00
    @meteor2013 额,一般般而已,论外貌我从来都只是中等或者中上而已
    Mr01
        18
    Mr01  
       2013-07-04 13:05:13 +08:00
    @loveminds 头像真漂亮 是本人?中等偏上什么的最好了
    看头像 属于微胖界?抱歉失礼
    graypants
        19
    graypants  
       2013-07-04 17:22:36 +08:00
    我们公司发布的项目是用的phpExcel。关于po主关心的是否能商用,可参考“LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售”
    meteor2013
        20
    meteor2013  
    OP
       2013-07-04 22:51:14 +08:00 via iPhone
    @graypants 太好了。 这样的话就直接用phpexcel 了.
    shin
        21
    shin  
       2013-07-04 23:47:08 +08:00
    CI里好像有一个辅助可以实现。
    meteor2013
        22
    meteor2013  
    OP
       2013-07-05 00:52:54 +08:00 via iPhone
    @shin CI里面具体哪个辅助啊?
    piresion
        23
    piresion  
       2013-07-05 10:01:58 +08:00
    直接写table,设置header,这是在网页上生成excel最快,最省事的办法。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5864 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 03:22 PVG 11:22 LAX 20:22 JFK 23:22
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86