Completed
Push — master ( 015c9a...460a97 )
by Once
02:05
created

example.php (1 issue)

1
<?php
2
3
require __DIR__ . '/vendor/autoload.php';
4
5
use Zhaqq\Xlsx\XlsxWriter;
6
7
date_default_timezone_set('PRC');
8
$start = microtime(true);
9
ini_set('memory_limit', '512M');
10
11
times($start);
12
13
try {
14
    $writer = new \Zhaqq\Xlsx\Writer\Builder();
15
//    $writer = new XlsxWriter();
16
17
    $fileName = __DIR__ . '/data/xlsx_writer' . date('Ymd-His') . '.xlsx';
18
    $writer->buildHeader('sheet_name_1', otherHead());
19
    $writer->buildHeader('sheet_name_2', clothingHead());
20
21
    foreach (rows() as $row) {
22
        $writer->writeSheetRow($row[0], $row[1]);
23
    }
24
    times($start);
25
26
    $writer->writeToFile($fileName);
27
28
    times($start);
29
30
} catch (\Exception $exception) {
0 ignored issues
show
Coding Style Comprehensibility introduced by
Consider adding a comment why this CATCH block is empty.
Loading history...
31
32
}
33
34
35
function rows()
36
{
37
    for ($i = 0; $i < 20; $i++) {
38
        if ($i % 2) {
39
            yield ['sheet_name_1', [
40
                'SKU' . $i,
41
                '尺码' . $i,
42
                '净重' . $i,
43
                '单价' . $i,
44
            ]];
45
        } else {
46
            yield ['sheet_name_2', [
47
                'SKU' . $i,
48
                '尺码' . $i,
49
                '净重' . $i,
50
                '单价' . $i,
51
52
            ]];
53
        }
54
    }
55
}
56
57
function rowsE()
58
{
59
    for ($i = 0; $i < 100; $i++) {
60
        if ($i % 2) {
61
            yield ['非服装', [
62
                'sku' => 'SKU' . $i,
63
                'skc' => 'SKC' . $i,
64
                'size' => '尺码' . $i,
65
                'real_weight' => '净重' . $i,
66
                'us_cost' => '单价' . $i,
67
            ]];
68
        } else {
69
            yield ['服装', [
70
                'sku' => 'SKU' . $i,
71
                'size' => '尺码' . $i,
72
                'real_weight' => '净重' . $i,
73
                'us_cost' => '单价' . $i,
74
            ]];
75
        }
76
    }
77
}
78
79
function times($start, $object = 'XlsxWriter')
80
{
81
    echo $object, PHP_EOL;
82
    echo microtime(true) - $start, PHP_EOL;
83
    echo '#', floor((memory_get_peak_usage(true)) / 1024 / 1024), "MB", PHP_EOL;
84
    echo '#', floor((memory_get_usage(true)) / 1024 / 1024), "MB", PHP_EOL, PHP_EOL;
85
}
86
87
88
function clothingHead()
89
{
90
    return [
91
        'SKU' => 'string',
92
        '尺码' => 'string',
93
        '净重' => 'string',
94
        '单价' => 'float3',
95
    ];
96
}
97
98
function otherHead()
99
{
100
    return [
101
        'SKU' => 'string',
102
        '尺码' => 'string',  // sku
103
        '净重' => 'string',  // sku
104
        '单价' => 'prices',  // sku
105
    ];
106
}
107
108
function word($i)
109
{
110
    return [
111
        'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'Q', 'O', 'P', 'Q', 'R', 'S'
112
    ][$i];
113
}
114