xlswriterは、Excel 2007+ XLSXファイルからデータを読み取り、複数のシートを挿入し、テキスト、数値、数式、日付、チャート、写真、ハイパーリンクを書き込むために使用できるPHP C拡張です。
以下の機能があります。
I.書き込み
100%互換性のあるExcel XLSXファイル
-完全なExcel形式
-セルの結合
-ワークシート名を定義する
-フィルター
-チャート
-データの検証とドロップダウンリスト
-ワークシートPNG / JPEG画像
-大きなファイルを書き込むためのメモリ最適化モード
Linux、FreeBSD、OpenBSD、OS X、Windowsで実行
-32ビットおよび64ビットにコンパイル
-FreeBSDライセンス
-唯一の依存関係はzlibです
次に、読みます
-データを完全に読み取る
-カーソル読み取りデータ
-データ型による読み取り
-xlsxからCSV
#ベンチマーク
テスト環境:Macbook Pro 13インチ、Intel Core i5、16GB 2133MHz LPDDR3メモリ、128GB SSDストレージ。
エクスポート
2つのメモリモードで100万行のデータをエクスポートできます(1行あたり27列、データタイプは文字列、文字列の長さは19)
-通常モード:時間のかかる「29S」、メモリのみ「2083MB」が必要です。
-固定メモリモード:52Sのみ、メモリ<1MBのみ。
インポート
100万行を超えるデータ(単一行、1列、データ型はINT)
-フルボリュームモード:「3S」には時間がかかり、「558MB」のメモリのみ。
カーソルモード:時間のかかる「2.8S」、メモリのみ「<1MB」。
#クイックスタート
エクスポート
$excel = new \Vtiful\Kernel\Excel(['path' => '/home/viest']);
// fileName 会自动创建一个工作表,你可以自定义该工作表名称,工作表名称为可选参数
$filePath = $excel->fileName('tutorial01.xlsx', 'sheet1')
->header(['Item', 'Cost'])
->data([
['Rent', 1000],
['Gas', 100],
['Food', 300],
['Gym', 50],
])
->output();
インポート
$excel = new \Vtiful\Kernel\Excel(['path' => './tests']);
$filePath = $excel->fileName('tutorial.xlsx')
->header(['Item', 'Cost'])
->output();
$data = $excel->openFile('tutorial.xlsx')
->openSheet()
->getSheetData();
var_dump($data); // [['Item', 'Cost']]
XLSXtoCSV [通常モード]
適用シナリオ
-より多くのxlsxファイルフラグメントを統合処理のために1つのCSVファイルにマージします。
-xlsxファイルは、タスク処理速度よりも速く追加されます。ファイルが非同期でCSVに変換された後、より効率的なツール(たとえば、データベースツールがCSVを直接インポートする)で処理できます。
例
demo.php
$excel = new \Vtiful\Kernel\Excel(['path' => './tests']);
$filePath = $excel->fileName('tutorial.xlsx', 'TestSheet1')
->header(['String', 'Int', 'Double'])
->data([
['Item_1', 10, 10.9999995],
])
->output();
$fp = fopen('./tests/file.csv', 'a');
$resultBoolOne = $excel->openFile('tutorial.xlsx')
->openSheet()
->putCSV($fp);
$resultBoolTwo = $excel->openFile('tutorial.xlsx')
->openSheet()
->putCSV($fp);
file.csv
String,Int,Double
Item_1,10,10.9999995
String,Int,Double
Item_1,10,10.9999995
Xlsx移行CSV [コールバックモード]
このアプリケーションシナリオは従来のモデルと似ていますが、上位レベルの企業はコールバック関数を使用してデータを処理し、xlsxを使用してデータをフィルター処理し、csvに書き込むことができます。
ドキュメントの他の機能を見る
https://xlswriter-docs.viest.me
倉庫住所
GitHub:https://gitee.com/viest/php-ext-xlswriter
PECL:https://pecl.php.net/package/xlswriter
終わり
それがあなたを助けるなら、私に星をください