1:創建導出文件,傳入數據
$cover = [
['第','一','行'],
['第','二','410000000000000000'.''],//防止數字過長導致格式亂碼 例如身份證需在字段后加空格
['第','三','行'],
['',' ',''],//空白行,用於分頁打印分割內容,如果不填則會連在一起無法分頁
];
表格格式先按照數組格式存儲,樣式在后續調整
Excel::create(iconv('UTF-8','GBK', '申請材料'), function ($excel) use ($cover) {
$excel->sheet('score', function ($sheet)use ($cover) {
$sheet->rows($cover);
//后續操作寫在此處
});
})->export('xls');
2:表格樣式和部分功能
設置寬度:
$sheet->setWidth(array( 'A' => 16,'B' => 64));
設置高度:
$sheet->setHeight(array(
($i * 20 + 1) => 40,//設置每行的高度
($i * 20 + 2) => 40,
));
設置單元格字體樣式:
$sheet->cells('A1 :A20'), function ($cells) {
$cells->setFontSize(16);//字體大小
$cells->setFontFamily('simsun');//字體樣式
$cells->setValignment('center');//字體垂直居中
$cells->setAlignment('center');//字體水平居中
$cells->setBorder('none','thin', 'none', 'thin');//設置表格邊框
});
設置打印時頁面邊距
$sheet->setPageMargin(array(
0.8, 0, 0, 0.4));
打印導出圖片到文檔
$card_id= $cover [3][1] ;//獲取到圖片數據
$img = DB::select( );//查詢圖片名
$src = $img[0]->photopath;
if (@getimagesize(storage_path() . '/photo/' . $src) == null) {
$src = 'error.jpg';
}//判斷是否存在圖片,不存在則返回錯誤圖片名稱
if (sizeof($img) > 0) {
/*實例化插入圖片類*/
$objDrawing = new PHPExcel_Worksheet_Drawing();
/*設置圖片路徑 切記:只能是本地圖片*/
$objDrawing->setPath(storage_path(). '/photo/' . $src);
/*設置圖片高度*/
$objDrawing->setHeight(120);
$objDrawing->setWidth(120);
/*設置圖片要插入的單元格*/
$objDrawing->setCoordinates('I2');
$objDrawing->setWorksheet($sheet);
}
設置分頁打印區域
$print_area= '';
$print_area= $print_area . 'A' . ($i * 23 + 1) . ':I' . ($i * 23 + 22) . ',';//循環生成需打印的內容'A1:B2,A3:B4,'
$print_area= substr($print_area,0,strlen($print_area)-1);//以字符串形式傳入打印區域
$sheet->setPrintArea($print_area);
合並單元格
$sheet->mergeCells('A1:B2');