7-5-2
Excel 常用方法
您沒有觀看影片的權限
請先登入,登入後,確認您的權限後,即可觀看影片。
- 建立工作表並指定名稱
$objPHPExcel->setActiveSheetIndex(0); //設定預設顯示的工作表
$objActSheet = $objPHPExcel->getActiveSheet(); //指定預設工作表為 $objActSheet
$objActSheet->setTitle("工作表名稱"); //設定標題
$objPHPExcel->createSheet(); //建立新的工作表,上面那三行再來一次,編號要改
- 調整儲存格欄寬
$objActSheet->getColumnDimension('A')->setWidth(8); //固定寬度8
$objActSheet->getColumnDimension('B')->setAutoSize(true); //自動寬度
$objActSheet->getColumnDimensionByColumn(2)->setWidth(8);
- 指定儲存格內容,有以下類型可設定:
TYPE_BOOL
、TYPE_ERROR
、TYPE_FORMULA
、TYPE_INLINE
、TYPE_NULL
、TYPE_NUMERIC
、TYPE_STRING
$objActSheet
->setCellValue("A1", '欄1')
->setCellValue("B1", '欄2');
$objActSheet->setCellValueExplicit("C2", '欄3',PHPExcel_Cell_DataType:: TYPE_STRING);
$objActSheet->setCellValueByColumnAndRow(3, 1, '欄4'); //直欄從0開始,橫列從1開始
- 設定橫列高度
$objActSheet->getRowDimension($i)->setRowHeight(60);
- 設定文字字型、粗細、顏色、儲存格背景顏色
$objPHPExcel->getDefaultStyle()->getFont()->setName('微軟正黑體')->setSize(14);
$objActSheet->getStyle('A1:J1')->getFont()->setBold(true)->getColor()->setARGB('00FFFFFF');
$objActSheet->getStyle('A1:J1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setARGB('00474747');
- 合併儲存格
$objActSheet->mergeCells("A1:J1")->setCellValue("A1", '合併儲存格');
- 插入公式
$objActSheet->setCellValue("A{$i}", '公式');
$n = $i - 1;
$objActSheet->setCellValue("B{$i}", "=COUNT(A3:A{$n})");
- 保護儲存格
$objActSheet->getProtection()->setSheet(true);
$objActSheet->getProtection()->setSort(true);
$objActSheet->getProtection()->setInsertRows(true);
$objActSheet->getProtection()->setFormatCells(true);
$objActSheet->getProtection()->setPassword('1234');
- 對齊方向及自動換行,對齊的值有以下這些:
HORIZONTAL_CENTER
、 HORIZONTAL_CENTER_CONTINUOUS
、 HORIZONTAL_GENERAL
、 HORIZONTAL_JUSTIFY
、 HORIZONTAL_LEFT
、 HORIZONTAL_RIGHT
、 VERTICAL_BOTTOM
、 VERTICAL_CENTER
、 VERTICAL_JUSTIFY
、 VERTICAL_TOP
$objActSheet->getStyle('A')->getAlignment()
->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER) //垂直置中
->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //水平置中
$objActSheet->getStyle('F')->getAlignment()->setWrapText(true); //自動換行
- 邊框設定,
getAllborders()
、getTop()
、getLeft()
、getRight()
、getBottom()
等位置,邊框的種類有:BORDER_DASHDOT
、 BORDER_DASHDOTDOT
、 BORDER_DASHED
、 BORDER_DOTTED
、 BORDER_DOUBLE
、 BORDER_HAIR
、 BORDER_MEDIUM
、 BORDER_MEDIUMDASHDOT
、 BORDER_MEDIUMDASHDOTDOT
、 BORDER_MEDIUMDASHED
、 BORDER_NONE
、 BORDER_SLANTDASHDOT
、 BORDER_THICK
、 BORDER_THIN
$objActSheet->getStyle("A1:J{$i}")->getBorders()->getAllborders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN)->getColor()->setRGB('000000');
- 把數字轉換為A、B、C欄位的方法:
function num2alpha($n){
for($r = ""; $n >= 0; $n = intval($n / 26) - 1)
$r = chr($n%26 + 0x41) . $r;
return $r;
}