美文网首页
2022-03-13 保存表格

2022-03-13 保存表格

作者: 一粟01 | 来源:发表于2022-03-13 10:41 被阅读0次

    1 加载autoload.php

    载入composer自动加载文件
    使用命名空间里的类文件,(可以给类文件的命名空间起个别名)
    实例化Spreadsheet类

    <?php
        #1 载入文件
        #载入composer自动加载文件
        require 'vendor/autoload.php';
        /*
        #使用命名空间里的类文件
        use PhpOffice\PhpSpreadsheet\Spreadsheet;
        #实例化Spreadsheet类
        $shili1 = new Spreadsheet();
        */
        #使用命名空间里的类文件,并给类文件的命名空间起个别名
        use PhpOffice\PhpSpreadsheet\Spreadsheet as leim1;
        #实例化Spreadsheet类,用类的别名
        $shili1 = new leim1();
    ?>
    

    2 单元格及单元格值的获取、设置

    获取活动工作簿
    获取单元格
    设置单元格的值
    获取单元格的值

    <?php
        #2 单元格操作
        #获取活动工作簿 网站根目录下,要有“i1.xlsx”这个文件
        $gzbu1 = $shili1->getActiveSheet('i1.xlsx');    
        #获取单元格
        $dygeB2 = $gzbu1->getCell('B2');
        #设置单元格的值
        $valB2 = $dygeB2->setValue('东方朔');
        #获取单元格的值
        $valB21 = $dygeB2->getValue('B2');
        $valB23 = $gzbu1->getCell('B2')->getValue();
        //获取单元格,获取单元格坐标
        echo $valB23 = $gzbu1->getCellByColumnAndRow(3,2)->getCoordinate();
    ?>
    

    3 保存表格

    (使用xlsx类)
    先是命名空间的类
    使用命名空间里的类文件
    类文件的实例化
    保存文件

    <?php
        #3 保存表格 #使用xlsx类
        #先是命名空间的类
        #使用命名空间里的类文件
        use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
        #类文件的实例化
        $wenj1 = new Xlsx($shili1);
        #保存文件
        $wenj1->save('b1.xlsx');
    ?>
    

    完整代码
    <?php
        #1 载入文件
        #载入composer自动加载文件
        require 'vendor/autoload.php';
        /*
        #使用命名空间里的类文件
        use PhpOffice\PhpSpreadsheet\Spreadsheet;
        #实例化Spreadsheet类
        $shili1 = new Spreadsheet();
        */
        #使用命名空间里的类文件,并给类文件的命名空间起个别名
        use PhpOffice\PhpSpreadsheet\Spreadsheet as leim1;
        #实例化Spreadsheet类,用类的别名
        $shili1 = new leim1();
    
        #2 单元格操作
        #获取活动工作簿 网站根目录下,要有“i1.xlsx”这个文件
        $gzbu1 = $shili1->getActiveSheet('i1.xlsx');    
        #获取单元格
        $dygeB2 = $gzbu1->getCell('B2');
        #设置单元格的值
        $valB2 = $dygeB2->setValue('东方朔');
        #获取单元格的值
        $valB21 = $dygeB2->getValue('B2');
        $valB23 = $gzbu1->getCell('B2')->getValue();
        //获取单元格,获取单元格坐标
        echo $valB23 = $gzbu1->getCellByColumnAndRow(3,2)->getCoordinate();
    
        #3 保存表格 #使用xlsx类
        #先是命名空间的类
        #使用命名空间里的类文件
        use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
        #类文件的实例化
        $wenj1 = new Xlsx($shili1);
        #保存文件
        $wenj1->save('b1.xlsx');
    ?>
    

    实测,可以运行。
    很多教程里,把变量名取成跟关键字一样,让初学者看着云里雾里,个人很不喜欢。所以,虽然我的笔记是从别人那里学来的,但是语句做了简单处理,能自由命名的地方,尽量用拼音+数字表示了。


    4 修改代码

    以上,是教程,拼起来的。
    教程中要先提供一个

    网站根目录下已有的文件(i1.xlsx)
    (此处使用引用格式,只是强调一下)

    这种做法,通用性不强。

    能不能直接先创建一个文件,再设置单元格的值?当然,最后是要保存的。
    可借鉴上面的教程,
    第2步先保存文件,
    第3步再读取这个文件,
    第4步最后还是保存为这个文件。
    于是,修改代码,并进行调试,最后实测可行。

    另外,将spreadsheet安装到主站点根目录下,
    在子站点中加载文件,require 'vendor/autoload.php';代码修改为
    require $_SERVER['DOCUMENT_ROOT'].'/vendor/autoload.php';
    其中$_SERVER['DOCUMENT_ROOT']是调用上层目录
    所有代码如下:

    <?php
        #1 载入文件
        #载入composer自动加载文件
        #require 'vendor/autoload.php';
        require $_SERVER['DOCUMENT_ROOT'].'/vendor/autoload.php';
        #使用命名空间里的类文件
        use PhpOffice\PhpSpreadsheet\Spreadsheet;
        #实例化Spreadsheet类
        $shili1 = new Spreadsheet();
    
        #2 保存表格 #使用xlsx类
        #先是命名空间的类
        #使用命名空间里的类文件
        use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
        #类文件的实例化
        $wenj1 = new Xlsx($shili1);
        #保存文件 新建一个文件,命名为b1.xlsx。如果已有同名文件,则删除原文件中所有内容。
        $wenj1->save('b1.xlsx');
    
        #3 单元格操作
        #获取活动工作簿
        $gzbu1 = $shili1->getActiveSheet('b1.xlsx');    
        #获取单元格
        $dygeB2 = $gzbu1->getCell('c4');
        #设置单元格的值
        $valB2 = $dygeB2->setValue('东方朔20220313');
        
        #4 保存文件
        $wenj1->save('b1.xlsx');
    ?>
    

    相关文章

      网友评论

          本文标题:2022-03-13 保存表格

          本文链接:https://www.haomeiwen.com/subject/dvjrdrtx.html