Box/Spout處理excel和csv
阿新 • • 發佈:2020-09-16
源地址:https://www.kancloud.cn/logoove/we7/1442125
Box/Spout處理excel和csv
- 匯出csv和xlsx
use Box\Spout\Writer\WriterFactory;
use Box\Spout\Common\Type;
$result = [];
for ($i = 0; $i < 100; $i++) {
$arr = [
'name' => \Mock::name(),
'age' =>\Mock::number('10-80'),
'email' =>\Mock::email(),
'address' =>\Mock::address(),
'times'=>\Mock::datetime()
];
$result[] = $arr;
}
$reader = WriterFactory::create(Type::XLSX);
$reader->openToBrowser("測試.xlsx");//輸出到瀏覽器
//$reader->openToFile(storage_path('file/s.xlsx'));//輸出到檔案
$reader->addRow([
'name' => '姓名',
'age' => '年齡',
'email' => '郵箱',
'address' => '地址',
'times'=>'時間'
]);
$reader->addRows($result);
$reader->close();
- 讀取excel的xlsx和csv
use Box\Spout\Reader\ReaderFactory;
use Box\Spout\Common\Type;
$path = storage_path('file/a.xlsx');
$type = pathinfo($path);
$type = strtolower($type["extension"]);
$type = ($type === 'xlsx')?Type::XLSX:Type::CSV;
$reader = ReaderFactory::create($type);
$reader->setShouldFormatDates(true);
if($type === 'csv'){$reader->setEncoding('GB2312');}
$reader->open($path);
$iterator = $reader->getSheetIterator();
$iterator->rewind();
$sheet1 = $iterator->current();
$rowIter = $sheet1->getRowIterator();
$data =[];
foreach ($rowIter as $rowIndex => $row) {
$data[] = $row;
}
$reader->close();