色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

php excel 透視

錢諍諍1年前9瀏覽0評論

在使用php excel處理數據的過程中,透視是一個非常實用的功能。透視能夠通過某個字段來統計數據,并按照指定的方式進行分組,最終呈現出比較直觀的結果。下面我們就來了解一下php excel如何實現透視的功能。

首先,我們需要創建一個Excel文件,用于存放需要進行透視的數據。以下是一個簡單的例子,我們通過循環來創建數據:

$phpExcel = new PHPExcel();
$sheet = $phpExcel->getActiveSheet();
$sheet->setCellValue('A1', '日期')
->setCellValue('B1', '銷售員')
->setCellValue('C1', '產品')
->setCellValue('D1', '金額')
->setCellValue('E1', '數量');
for ($i = 2; $i< 12; $i++) {
$date = '2021-08-'.$i;
$seller = 'Seller '.($i%2+1);
$product = 'Product '.($i%3+1);
$amount = rand(10, 100);
$quantity = rand(1, 5);
$sheet->setCellValue('A'.$i, $date)
->setCellValue('B'.$i, $seller)
->setCellValue('C'.$i, $product)
->setCellValue('D'.$i, $amount)
->setCellValue('E'.$i, $quantity);
}

以上代碼創建了日期、銷售員、產品、金額和數量五個字段的數據,并將其保存在一個Excel文件中。接下來,我們需要通過php excel提供的透視功能來對這些數據進行統計分析。

首先,我們需要選中需要進行透視的數據范圍。以下代碼指定了數據范圍為A1到E11:

$dataRange = 'A1:E11';
$sheet->setAutoFilter($dataRange);
$sheet->getStyle($dataRange)->getFont()->setSize(11);
$sheet->getStyle($dataRange)->getAlignment()->setWrapText(true);

接下來,我們需要指定透視表的位置和數據字段。以下代碼將透視表放在G1位置,指定了需要統計的字段為金額,同時按照銷售員進行分組:

$reportRange = 'G1:H10';
$sheet->setCellValue('G1', '銷售員');
$sheet->setCellValue('H1', '金額');
$salesmanField = $sheet->getPivotDataValue($dataRange, PHPExcel_Cell::stringFromColumnIndex(3), PHPExcel_Cell::stringFromColumnIndex(0), $sheet->getHighestDataRow());
$sumValue = $sheet->getPivotDataValue($dataRange, PHPExcel_Cell::stringFromColumnIndex(4), PHPExcel_Cell::stringFromColumnIndex(0), $sheet->getHighestDataRow(), PHPExcel_Worksheet_PivotTable::AGGREGATE_FUNCTION_SUM);
$pivotTableSettings = array(
'name' =>'銷售統計',
'columnFields' =>array(PHPExcel_Cell::stringFromColumnIndex(1)),
'dataFields' =>array(
$salesmanField =>array(
'type' =>PHPExcel_Worksheet_PivotTable_DataField::DATA_TYPE_NUMBER,
'defaultSubtotal' =>PHPExcel_Worksheet_PivotTable_DataField::SUBTOTAL_FUNCTION_SUM,
'subtotalCaption' =>'總計'
)
),
'rowFields' =>array(
PHPExcel_Cell::stringFromColumnIndex(2)
)
);
$sheet->addPivotTable(new PHPExcel_Worksheet_PivotTable($pivotTableSettings, $dataRange, $reportRange, $sumValue));

以上代碼指定了透視表的位置為G1到H10,將銷售員作為列,產品作為行,金額作為值進行統計。

最終,我們需要將透視表的樣式設置為可讀,并輸出到一個新的Excel文件中。以下代碼將透視表樣式設置為11號字體、自動換行,并將結果保存到一個新的Excel文件中:

$sheet->getStyle($reportRange)->getFont()->setSize(11);
$sheet->getStyle($reportRange)->getAlignment()->setWrapText(true);
$objWriter = PHPExcel_IOFactory::createWriter($phpExcel, 'Excel2007');
$objWriter->save('pivotTable.xlsx');

到此為止,我們就成功地使用php excel實現了透視的功能。最終結果如下圖所示:

![透視表結果](https://i.loli.net/2022/02/07/8gNFJCRrBzscih1.png)