亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用PhpSpreadsheet

發布時間:2020-07-10 11:08:08 來源:億速云 閱讀:343 作者:Leah 欄目:編程語言

如何使用PhpSpreadsheet?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

今天遇到一個問題,涉及 php 與 excel 之間數據轉換。之前一直用 PHPExcel,他們的開發組不更新了。但是找到了 PhpSpreadsheet 。

一、介紹

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

支持格式

如何使用PhpSpreadsheet

環境要求

php 5.6 及以上

php_zip 支持并啟用

php_xml 支持并啟用

php_gd2 支持并啟用

安裝

> composer require phpoffice/phpspreadsheet

hello world

<?php
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$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 = \PhpOffice\PhpSpreadsheet\IOFactory::load($inputFileName);

注意:

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

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

// 文件路徑
$inputFileName = './sampleData/example1.xls';
/** 創建讀取器  **/
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xls();
//    $reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
//    $reader = new \PhpOffice\PhpSpreadsheet\Reader\Xml();
//    $reader = new \PhpOffice\PhpSpreadsheet\Reader\Ods();
//    $reader = new \PhpOffice\PhpSpreadsheet\Reader\Slk();
//    $reader = new \PhpOffice\PhpSpreadsheet\Reader\Gnumeric();
//    $reader = new \PhpOffice\PhpSpreadsheet\Reader\Csv();
$spreadsheet = $reader->load($inputFileName);

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

$inputFileType = 'Xls';
$inputFileName = './sampleData/example1.xls';
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($inputFileType);
/**  只要數據  **/
$reader->setReadDataOnly(true);
$spreadsheet = $reader->load($inputFileName);

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

多個文件合并為一個對象

$inputFileType = 'Csv';
$inputFileNames = [
    './sampleData/example1.csv',
    './sampleData/example2.csv'
    './sampleData/example3.csv'
];
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::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 = PhpOffice\PhpSpreadsheet\IOFactory::load("new.xls");
$data = $spreadsheet
            ->getSheet(0) // 指定第一個工作表為當前
            ->toArray();  // 轉為數組
// 或者得到全部工作表的數據數組           
$cells=array();
// 工作表對象有迭代器實現
foreach ( $spreadsheet->getWorksheetIterator() as $data ) {
    $cells = $data->toArray();
}

結語

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

看完上述內容,你們掌握如何使用PhpSpreadsheet的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

香格里拉县| 淮阳县| 雷波县| 曲沃县| 额尔古纳市| 房山区| 苏尼特左旗| 朝阳县| 基隆市| 沾益县| 黄浦区| 定日县| 肥城市| 阿坝| 云南省| 诏安县| 临潭县| 永泰县| 永仁县| 山东| 东乌珠穆沁旗| 榕江县| 阜平县| 宝坻区| 广平县| 逊克县| 清流县| 灵璧县| 肥东县| 静海县| 开远市| 西昌市| 仙居县| 玉树县| 曲松县| 双牌县| 毕节市| 德化县| 黔东| 大丰市| 新津县|