• <tt id="4ayss"><strong id="4ayss"></strong></tt>
  • <xmp id="4ayss"><menu id="4ayss"></menu><nav id="4ayss"><strong id="4ayss"></strong></nav>
    <nav id="4ayss"><strong id="4ayss"></strong></nav>
  • <nav id="4ayss"></nav>

    卓象程序員 | 哈爾濱IT培訓 | 品質教育,口碑傳承 | 為做出口口相傳,好口碑的教育品牌而奮斗!

    卓象程序員讓每一位學員高薪就業 聯系我們13101507057

    加微信,了解詳情
    您所在的位置:首頁 > 文章 >卓象技術

    「卓象程序員」電子表格 導入PhpSpreadsheet
    時間: 2019-10-23 09:06:43     來源: 卓象IT實訓基地【原創】



    一、介紹

    用純 php 編寫的庫,它提供了一組類,允許您讀取和寫入不同的電子表格文件格式

    支持格式

    環境要求

    php 5.6 及以上

    php_zip 支持并啟用

    php_xml 支持并啟用

    php_gd2 支持并啟用

    安裝

    > composer require phpoffice/phpspreadsheet

    hello world

    <?php

    require 'vendor/autoload.php';

    use PhpOfficePhpSpreadsheetSpreadsheet;

    use PhpOfficePhpSpreadsheetWriterXlsx;

    $spreadsheet = new Spreadsheet();

    $sheet = $spreadsheet->getActiveSheet();

    $sheet->setCellValue('A1', 'Hello World !');

    $writer = new Xlsx($spreadsheet);

    $writer->save('hello world.xlsx')

    實例

    包中帶了實例代碼,位置 vendor/phpoffice/phpspreadsheet/samples 下

    > php -S localhost:8000 -t vendor/phpoffice/phpspreadsheet/samples

    二、讀取

    無需關心文件類型加載,用到了 IOFactory

    // 文件路徑

    $inputFileName = './sampleData/example1.xls';

    $spreadsheet = PhpOfficePhpSpreadsheetIOFactory::load($inputFileName)

    注意:

    這不是加載文件的最有效方法, 并且它缺乏在將文件實際讀入 Spreadsheet 對象之前以任何方式配置加載器的靈活性。

    知道文件類型,可以自己決定使用哪種讀取器

    // 文件路徑

    $inputFileName = './sampleData/example1.xls';

    /** 創建讀取器  **/

    $reader = new PhpOfficePhpSpreadsheetReaderXls();

    //    $reader = new PhpOfficePhpSpreadsheetReaderXlsx();

    //    $reader = new PhpOfficePhpSpreadsheetReaderXml();

    //    $reader = new PhpOfficePhpSpreadsheetReaderOds();

    //    $reader = new PhpOfficePhpSpreadsheetReaderSlk();

    //    $reader = new PhpOfficePhpSpreadsheetReaderGnumeric();

    //    $reader = new PhpOfficePhpSpreadsheetReaderCsv();

    $spreadsheet = $reader->load($inputFileName)

    當只要讀取數據,不要格式時,實例讀取器中 readDataOnly 屬性,如下

    $inputFileType = 'Xls';

    $inputFileName = './sampleData/example1.xls';

    $reader = PhpOfficePhpSpreadsheetIOFactory::createReader($inputFileType);

    /**  只要數據  **/

    $reader->setReadDataOnly(true);

    $spreadsheet = $reader->load($inputFileName);

    注意:csv 讀取器沒有這個屬性

    多個文件合并為一個對象

    $inputFileType = 'Csv';

    $inputFileNames = [

        './sampleData/example1.csv',

        './sampleData/example2.csv'

        './sampleData/example3.csv'

    ];

    $reader = PhpOfficePhpSpreadsheetIOFactory::createReader($inputFileType);

    /** 拿到第一個  **/

    $inputFileName = array_shift($inputFileNames);

    $spreadsheet = $reader->load($inputFileName);

    $spreadsheet->getActiveSheet()

        ->setTitle(pathinfo($inputFileName,PATHINFO_BASENAME));

    /**  循環讀取  **/

    foreach($inputFileNames as $sheet => $inputFileName) {

        /**  重新設置工作表索引  **/

        $reader->setSheetIndex($sheet+1);

        /**  把文件當做一個新的工作表載入  **/

        $reader->loadIntoExisting($inputFileName,$spreadsheet);

        /**  設置工作表標題  **/

        $spreadsheet->getActiveSheet()

            ->setTitle(pathinfo($inputFileName,PATHINFO_BASENAME));

    }

    注意:對多個工作表使用相同的工作表索引不會將文件附加到同一工作表中,而是覆蓋先前加載的結果。您無法將多個 CSV 文件加載到同一工作表中。

    轉為數組


    文件最后會載入到一個對象中,我稱為 spreadsheet 工作表對象,這個對象中存放著所以工作表集合的信息(數據信息和格式信息、工作表信息等)

    $spreadsheet = PhpOfficePhpSpreadsheetIOFactory::load("new.xls");

    $data = $spreadsheet

                ->getSheet(0) // 指定第一個工作表為當前

                ->toArray();  // 轉為數組

    // 或者得到全部工作表的數據數組          

    $cells=array();

    // 工作表對象有迭代器實現

    foreach ( $spreadsheet->getWorksheetIterator() as $data ) {

        $cells = $data->toArray();

    }

    結語

    PhpSpreadsheet 是非常不錯的 php 的電子表格處理工具類,后續有時間在補上寫入和導出。

    每日分享技術干貨~

    報名卓象免費訓練營課程

    學習最新熱門IT技術

    找一份自己滿意的高薪工作

    15天免費學習??!

    卓象程序員

    ★ 零基礎,隨時體驗

    ★ 免費試聽,滿意后再報名

    ★ 小班授課,學習氛圍濃厚

    ★ 口碑相傳,80%學員來自口碑推薦

    ★ 教學嚴管,闖關式學習保障學習效果

    ★ 公司地點,哈爾濱市東直路123號7樓



    热99re久久精品|天天综合网久久综合免费人成|91久久久久久久精品青草| 亚洲AV无码无一区二区Ⅰ久久|
  • <tt id="4ayss"><strong id="4ayss"></strong></tt>
  • <xmp id="4ayss"><menu id="4ayss"></menu><nav id="4ayss"><strong id="4ayss"></strong></nav>
    <nav id="4ayss"><strong id="4ayss"></strong></nav>
  • <nav id="4ayss"></nav>