使用phpspreadsheet導(dǎo)出并合并excel表格行數(shù)據(jù)
本文介紹如何利用PhpSpreadsheet庫(kù)將數(shù)組數(shù)據(jù)導(dǎo)出為excel表格,并實(shí)現(xiàn)行合并效果。假設(shè)您有一個(gè)如下所示的數(shù)組:
[ "customer" => "西卡若卡", "product" => [ [ "name" => "瓶-500ml塑料瓶", "parts" => "24牙35克", "rongliang" => "500ml" ], [ "name" => "內(nèi)塞-500ml塑料瓶", "parts" => "19小孔內(nèi)塞+蓋板", ], [ "name" => "蓋子-500ml塑料瓶", "parts" => "24牙雙層pp蓋", ], ] ]
目標(biāo)是將其導(dǎo)出為excel表格,并合并客戶名稱(chēng)所在的行,效果如下圖所示:
PhpSpreadsheet 提供了 mergeCells() 方法來(lái)合并單元格。以下代碼演示了如何使用該方法實(shí)現(xiàn)行合并:
立即學(xué)習(xí)“PHP免費(fèi)學(xué)習(xí)筆記(深入)”;
use PhpofficePhpSpreadsheetSpreadsheet; use PhpOfficePhpSpreadsheetWriterXlsx; $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $data = [ "customer" => "西卡若卡", "product" => [ [ "name" => "瓶-500ML塑料瓶", "parts" => "24牙35克", "rongliang" => "500ML" ], [ "name" => "內(nèi)塞-500ML塑料瓶", "parts" => "19小孔內(nèi)塞+蓋板", ], [ "name" => "蓋子-500ML塑料瓶", "parts" => "24牙雙層PP蓋", ], ] ]; $sheet->setCellValue('A1', '客戶'); $sheet->setCellValue('B1', '產(chǎn)品名稱(chēng)'); $sheet->setCellValue('C1', '部件'); $sheet->setCellValue('D1', '容量'); $row = 2; foreach ($data['product'] as $product) { $sheet->setCellValue('A' . $row, $data['customer']); $sheet->setCellValue('B' . $row, $product['name']); $sheet->setCellValue('C' . $row, $product['parts']); if (isset($product['rongliang'])) { $sheet->setCellValue('D' . $row, $product['rongliang']); } $row++; } // 合并客戶列 $sheet->mergeCells('A2:A' . ($row - 1)); $writer = new Xlsx($spreadsheet); $writer->save('example.xlsx');
這段代碼首先設(shè)置表頭,然后循環(huán)遍歷數(shù)組數(shù)據(jù)寫(xiě)入單元格。最后,使用 mergeCells(‘A2:A’ . ($row – 1)) 合并從 A2 到 A(最后一行) 的單元格。 請(qǐng)確保您已正確安裝 PhpSpreadsheet 庫(kù)。 運(yùn)行此代碼將生成一個(gè)名為 example.xlsx 的 Excel 文件,其中包含合并后的行數(shù)據(jù)。 此方法清晰地展示了如何使用 PhpSpreadsheet 實(shí)現(xiàn)數(shù)組數(shù)據(jù)導(dǎo)出和單元格合并。
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載。
THE END