PHPExcel常用屬性使用
前景:
需先實例化幾個變量:
$this->objExcel = new PHPExcel(); //實例化一個PHPExcel變量
$this->objExcel->setActiveSheetIndex(0); //設置要操作的Sheet頁
$this->objActSheet = $this->objExcel->getActiveSheet(); //獲取當前要操作的Sheet頁
$objStyle = $this->objActSheet->getStyle('A1'); //獲取要設置單元格的樣式,括號里的內容也可是:('A1:E1')
$objAlign = $objStyle->getAlignment(); //用來設置對齊屬性和單元格內文本換行的一個變量
$objFont = $objStyle->getFont(); //獲得字體屬性
常用屬性:
1、設置Sheet名稱:
//設置當前活動sheet的名稱
$this->objActSheet->setTitle($title);
2、設置對齊和單元格內換行
2.1、水平對齊
//設置單元格內容水平對齊
$objAlign->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
說明:
水平對齊的變量有:PHPExcel_Style_Alignment::HORIZONTAL_LEFT、PHPExcel_Style_Alignment::HORIZONTAL_CENTER、PHPExcel_Style_Alignment::HORIZONTAL_RIGHT;
具體含義分別為:左對齊、居中對齊、右對齊。
2.2、豎直對齊
$objAlign->setVertical(PHPExcel_Style_Alignment::VERTICAL_TOP);
說明:
豎直對齊的變量有:PHPExcel_Style_Alignment::VERTICAL_TOP、PHPExcel_Style_Alignment::VERTICAL_CENTER、PHPExcel_Style_Alignment::VERTICAL_BOTTOM
具體含義分別為:頂部對齊、豎直居中對齊、底部對齊
2.3、單元格內換行
$objAlign->setWrapText(true);
說明:
1、此舉是為了實現單元格內可以手動指定換行的位置。只要指定的文本本身是換行的,或者插入換行符('\n')。
2、要換行的文字,外面必須是雙引號
例如:
文本設置為:$arr['header'] = "哈哈\nHelloWorld";
顯示的效果為:
哈哈
HelloWorld
3、設置字體、顏色等
3.1、設置字體
$objFont->setName('微軟雅黑' ); //設置要使用的字體
3.2、設置字號
$objFont->setSize( 11 );
3.3、設置加粗
$objFont->setBold( false );
3.4、設置字顏色
$objFont->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE);
說明:
1、其顏色組成為:Alpha(透明度)通道+RGB色彩模式
2、ARGB---Alpha,Red,Green,Blu
3、一般我自己用的值都是"FF"+RGB的顏色值,如:"FFCC15DD"
4、單元格設置:
4.1、設置背景色
$objStyle->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$objStyle->getFill()->getStartColor()->setARGB('FF595959');
4.2、設置寬度
$this->objActSheet->getColumnDimension($widthStr)->setWidth('27.45');
4.3、設置高度
$this->objActSheet->getRowDimension($heightStr)->setRowHeight('27.45');
4.4、單元格合並
$this->objActSheet->mergeCells('A1:I1');
里面指定要合並的單元格范圍
5、其他設置:
5.1、設置自動篩選
$this->objActSheet->setAutoFilter("A2:B2");
說明:
當前筆者比較愚笨,還不能做到隨意指定設置自動篩選的方法。
5.2、單元格格式設置防止科學計數法
//設置單元格格式(防止科學技術法)
$numberFormat = $objStyle->getNumberFormat();
$numberFormat->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER);
說明:
讀取的時候一定要用:getFormattedValue(),這樣可以一定程度上減少讀出科學計數法的數。雖然php有方法轉換科學計數法,但是會遭遇精度丟失的情況。
筆者現在最頭疼的一個問題就是科學計數法,現在還未有非常好的解決方案,現在能解決的方法都不徹底。筆者會繼續探索!