最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ThinkPHP5+PhpSpreadsheet實現批量導出數據

 更新時間:2024年10月17日 09:35:27   作者:下頁、再停留  
由于PHPExcel不再維護,所以建議使用PhpSpreadsheet來導出exlcel,但是PhpSpreadsheet由于是個新的類庫,所以只支持PHP7.1及以上的版本,本文給大家介紹了ThinkPHP5+PhpSpreadsheet實現批量導出數據,需要的朋友可以參考下

前言

為什么使用PhpSpreadsheet?

由于PHPExcel不再維護,所以建議使用PhpSpreadsheet來導出exlcel,但是PhpSpreadsheet由于是個新的類庫,所以只支持PHP7.1及以上的版本。

PhpSpreadsheet有哪些功能?

PhpSpreadsheet提供了豐富的API,包括單元格設置、文檔屬性、圖片、日期、函數等,基本滿足項目需求。

先介紹如何安裝和使用常用的AIP,實例代碼放在最后,如果想直接使用可直接跳到第三部分完整實例。

一、安裝

使用compose安裝PhpSpreadsheet,在項目根目錄下執(zhí)行命令,PhpSpreadsheet會安裝到/vendor/下

composer require phpoffice/phpspreadsheet

二、API使用

1、引用和實例化

使用composer安裝完成后,可在項目中直接使用PhpSpreadsheet。

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Style\Alignment;
use PhpOffice\PhpSpreadsheet\Style\Border;
use PhpOffice\PhpSpreadsheet\Style\Fill;
use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
 
//實例化
$spreadsheet = new Spreadsheet();
// 獲取工作表
$sheet = $spreadsheet->getActiveSheet();

這里引用了多個PhpSpreadsheet類,下面介紹每個類的作用

1、\Spreadsheet:工作表

2、\Writer\Xlsx:導出excel

3、\IOFactory:導出excel

4、\Style\Alignment:設置單元格文字水平、垂直居中

5、\Style\Border:設置單元格邊框樣式

6、\Style\Fill:設置單元格背景顏色

7、\Worksheet\Drawing:寫入圖片

2、 設置單元格的值

把單元格A1的值設置為藥品不良反應事件報告表

$sheet->setCellValue('A1', '藥品不良反應事件報告表');

3、合并單元格

把單元格A1到N1合并

$sheet->mergeCells('A1:N1');

4、拆分單元格

 $sheet->unmergeCells('A1:A4');

5、單元格文字樣式

可以設置某一區(qū)域的單元格,也可以設置一行或一個單元格的樣式

// 字體大小
$sheet->getStyle('A1')->getFont()->setSize(12);
// 文字加粗
$sheet->getStyle('A1:N1')->getFont()->setBold(true);
// 字體設置
$sheet->getStyle('A1:N1')->getFont()->setName('黑體');

6、單元格文字水平、垂直居中

給單元格A1中的文字設置水平、垂直居中。需要注意的是需要引用Style\Alignment

use PhpOffice\PhpSpreadsheet\Style\Alignment;
 
// 水平、垂直居中
$alignstyle = [
     'alignment' => [
          'horizontal' => Alignment::HORIZONTAL_CENTER, //水平居中
           'vertical' => Alignment::VERTICAL_CENTER, //垂直居中
       ],
];
 
$sheet->getStyle('A1')->applyFromArray($alignstyle);

7、單元格邊框樣式

給單元格A4到B4加邊框,可以單獨設置上、下、左、右、全面邊框,需要引用\Style\Border

use PhpOffice\PhpSpreadsheet\Style\Border;
// 邊框樣式
$borderstyle = [
     'borders' => [
           'outline' => [
           'borderStyle' => Border::BORDER_THIN,
           'color' => ['argb' => '000000'],
           ],
     ],
];
 
 $sheet->getStyle('A4:B4')->applyFromArray($borderstyle);

8、設置單元格背景顏色

給單元格A4設置背景顏色,需要引用\Style\Fill

use PhpOffice\PhpSpreadsheet\Style\Fill;
 
$sheet->getStyle('A4')->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setRGB('D9D9D9'); 

9、設置行高

// 第一行行高設置為30
$sheet->getRowDimension(1)->setRowHeight(30);
 
// 設置默認行高
$sheet->getDefaultRowDimension()->setRowHeight(20);

10、設置列寬

// 設置A列的列寬
$sheet->getColumnDimension('A')->setWidth(15);
 
// 設置所有單元格的列寬
$sheet->getDefaultColumnDimension()->setWidth('15');

11、設置文字顏色

setRGB:顏色值帶#號

setARGB:顏色值不帶#號

 
$sheet->getStyle('B3')->getFont()->getColor()->setRGB('#AEEEEE');
 
 
$sheet->getStyle('B3')->getFont()->getColor()->setARGB('FFFF0000');

12、設置超鏈接

給單元格E6中的文字設置超鏈接

$sheet->setCellValue('E6', '百度');
$sheet->getCell('E6')->getHyperlink()->setUrl('www.baidu.com');

13、設置sheet的標題

// 設置sheet名稱
$sheet->setTitle('ADR報告');

14、使用函數

SUM:求和

VERAGE:平均數

MIN:最小值

MAX:最大值

$sheet->setCellValue('A3', '=SUM(A1:A2)');

15、寫入圖片

往單元格里寫入圖片,需要引用\Worksheet\Drawing

use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
//寫入圖片
$drawing = new Drawing();
$drawing->setName('Logo')->setDescription('Logo')->setPath('../files/1.jpg')->setHeight(30)->setCoordinates('D6')->setOffsetX(50)->setOffsetY(6);
$drawing->setRotation(25);
$drawing->getShadow()->setVisible(true);
$drawing->getShadow()->setDirection(45);
  
$drawing->setWorksheet($sheet);

16、導出xlsx文件

需要引用IOFactory

use PhpOffice\PhpSpreadsheet\IOFactory;
 
// MIME 協(xié)議,文件的類型,不設置,會默認html
header('Content-Type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); 
// MIME 協(xié)議的擴展
header('Content-Disposition: attachment;filename="' . iconv("utf-8", "GB2312", $filename) . '.xlsx');
// 緩存控制
header('Cache-Control:max-age=0');
$write = IOFactory::createWriter($spreadsheet, 'Xlsx');
$write->save('php://output');

17、導出xls文件

需要引用IOFactory

use PhpOffice\PhpSpreadsheet\IOFactory;
 
// MIME 協(xié)議,文件的類型,不設置,會默認html
header('Content-Type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); 
// MIME 協(xié)議的擴展
$filename = date('Y-m-d').'工作報告單';
header('Content-Disposition:attachment;filename='.$filename .'.xls');
// 緩存控制
header('Cache-Control:max-age=0');
$write = IOFactory::createWriter($spreadsheet, 'Xls');
$write->save('php://output');

三、完整實例

 
$adrinfo = array();
 
if (!empty($adrinfo)) {
 
//實例化
$spreadsheet = new Spreadsheet();
 
$filename = $adrinfo['name'].'_ADR報告'.date('YmdHis').rand(10000, 99999);       //導出文件名
 
$sheet = $spreadsheet->getActiveSheet();
 
//樣式
// 邊框樣式
$borderstyle = [
    'borders' => [
        'outline' => [
            'borderStyle' => Border::BORDER_THIN,
            'color' => ['argb' => '000000'],
        ],
    ],
];
// 水平、垂直居中
$alignstyle = [
    'alignment' => [
        'horizontal' => Alignment::HORIZONTAL_CENTER, //水平居中
        'vertical' => Alignment::VERTICAL_CENTER, //垂直居中
    ],
];
 
第一行 表頭/        
// 合并單元格
$sheet->mergeCells('A1:N1');
// 設置表格第一行顯示內容
$sheet->setCellValue('A1', '藥品不良反應/事件報告表');
$sheet->getStyle('A1')->getFont()->setSize(12); // 設置單元格字體大小
 
// 水平、垂直居中
$sheet->getStyle('A1')->applyFromArray($alignstyle);
 
// 設置行高
$sheet->getRowDimension(1)->setRowHeight(30);
 
//設置列寬
$sheet->getDefaultColumnDimension()->setWidth('15');
 
// 加粗
$sheet->getStyle('A1:N1')->getFont()->setBold(true);
// 設置sheet名稱
$sheet->setTitle($adrinfo['name'].'_ADR報告');
 
內容
// 第2行
$sheet->setCellValue('A2','首次/跟蹤:');
$sheet->setCellValue('B2','首次報告');
// 設置單元格背景顏色
// $sheet->getStyle('A2')->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setRGB('D9D9D9');  
// 設置行高
$sheet->getRowDimension('2')->setRowHeight(22);
// 水平、垂直居中
$sheet->getStyle('A2:N2')->applyFromArray($alignstyle);
 
 
// 第3行
$sheet->setCellValue('A3','已知/新的:');
$sheet->setCellValue('C3','一般/嚴重:');
 
$sheet->setCellValue('E3',$adrinfo['qingkuang']);
// 合并單元格
$sheet->mergeCells('E3:N3');
$sheet->getRowDimension('3')->setRowHeight(22);
// 水平、垂直居中
$sheet->getStyle('A3:D3')->applyFromArray($alignstyle);
 
// 第4行
$sheet->setCellValue('A4','患者姓名');
$sheet->setCellValue('B4',$adrinfo['name']);
$sheet->setCellValue('C4','性別');
$sheet->setCellValue('D4',$adrinfo['xingbie']);
$sheet->setCellValue('E4','出生日期');
$sheet->setCellValue('F4',$adrinfo['nianyue']);
$sheet->setCellValue('G4','或年齡');
$sheet->setCellValue('H4',$adrinfo['nianling']);
$sheet->setCellValue('I4','歲');
// 設置邊框
$sheet->getStyle('A4:B4')->applyFromArray($borderstyle);
$sheet->getStyle('C4:D4')->applyFromArray($borderstyle);
$sheet->getStyle('E4:F4')->applyFromArray($borderstyle);
$sheet->getStyle('G4:N4')->applyFromArray($borderstyle);
// 設置行高
$sheet->getRowDimension('4')->setRowHeight(22);
// 水平、垂直居中
$sheet->getStyle('A4:N4')->applyFromArray($alignstyle);
 
// 第5行
$sheet->setCellValue('A5','民族:');
$sheet->setCellValue('B5',$adrinfo['minzu']);
$sheet->setCellValue('C5','體重:');
$sheet->setCellValue('D5',$adrinfo['tizhong']);
$sheet->setCellValue('E5','千克');
$sheet->setCellValue('G5','聯系方式:');
$sheet->setCellValue('H5',$adrinfo['dianhua']);
// 設置邊框
$sheet->getStyle('A5:B5')->applyFromArray($borderstyle);
$sheet->getStyle('C5:F5')->applyFromArray($borderstyle);
$sheet->getStyle('G5:N5')->applyFromArray($borderstyle);
// 設置行高
$sheet->getRowDimension('5')->setRowHeight(22);
// 水平、垂直居中
$sheet->getStyle('A5:N5')->applyFromArray($alignstyle);
 
 
// 第6行
$sheet->setCellValue('A6','原患疾病:');
$sheet->setCellValue('G6','醫(yī)院名稱:');
$sheet->setCellValue('H6',$adrinfo['member']['danwei']);
$sheet->setCellValue('K6','病歷號/門診號:');
$sheet->setCellValue('L6',$adrinfo['jiuzhenhao']);
// 設置邊框
$sheet->getStyle('A6:F6')->applyFromArray($borderstyle);
$sheet->getStyle('G6:J6')->applyFromArray($borderstyle);
$sheet->getStyle('K6:N6')->applyFromArray($borderstyle);
// 合并單元格
$sheet->mergeCells('B6:F6');
$sheet->mergeCells('H6:J6');
// 設置行高
$sheet->getRowDimension('6')->setRowHeight(22);
// 水平、垂直居中
$sheet->getStyle('A6:N6')->applyFromArray($alignstyle);
// 設置單元格背景顏色
// $sheet->getStyle('A6')->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setRGB('D9D9D9'); 
 
 
// 第7行
$sheet->setCellValue('A7','既往藥品不良反應/事件:');
 
// 設置邊框
$sheet->getStyle('A7:B7')->applyFromArray($borderstyle);
$sheet->getStyle('C7:N7')->applyFromArray($borderstyle);
// 合并單元格
$sheet->mergeCells('C7:N7');
// 設置行高
$sheet->getRowDimension('7')->setRowHeight(22);
// 水平、垂直居中
$sheet->getStyle('A7:B7')->applyFromArray($alignstyle);
// 設置單元格背景顏色
// $sheet->getStyle('A7')->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setRGB('D9D9D9'); 
 
// 第8行
$sheet->setCellValue('A8','家族藥品不良反應/事件:');
$sheet->setCellValue('B8','不詳');
// 設置邊框
$sheet->getStyle('A8:N8')->applyFromArray($borderstyle);
// 設置行高
$sheet->getRowDimension('8')->setRowHeight(22);
// 水平、垂直居中
$sheet->getStyle('A8:N8')->applyFromArray($alignstyle);
// 設置單元格背景顏色
// $sheet->getStyle('A8')->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setRGB('D9D9D9'); 
 
// 第9行
$sheet->setCellValue('A9','相關重要信息:');
$sheet->setCellValue('B9',$adrinfo['huanzheqingkuang'].';過敏:'.$adrinfo['guomin']);
// 設置邊框
$sheet->getStyle('A9:N9')->applyFromArray($borderstyle);
// 合并單元格
$sheet->mergeCells('B9:N9');
// 設置行高
$sheet->getRowDimension('9')->setRowHeight(22);
// 水平、垂直居中
$sheet->getStyle('A9')->applyFromArray($alignstyle);
 
// 設置單元格背景顏色
// $sheet->getStyle('A9')->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setRGB('D9D9D9'); 
 
// 第10行 懷疑藥品
$sheet->setCellValue('B10','批準文號')
      ->setCellValue('C10','商品名')
      ->setCellValue('D10','通用名')
      ->setCellValue('E10','生產廠家')
      ->setCellValue('F10','生產批號')
      ->setCellValue('G10','次劑量')
      ->setCellValue('H10','給藥途徑')
      ->setCellValue('I10','頻次')
      ->setCellValue('J10','開始用藥日期')
      ->setCellValue('K10','停止用藥日期')
      ->setCellValue('L10','用藥原因')
      ->setCellValue('M10','停藥是否消失減輕')
      ->setCellValue('N10','再次用藥是否再出現');
    
// 統(tǒng)計共上傳了多少條藥品記錄
$cc = count($adrinfo['yaowu']);
// 下一項開始行序號
$i = 10+$cc;
 
// 設置邊框
$sheet->getStyle('A10')->applyFromArray($borderstyle); $sheet->getStyle('B10')->applyFromArray($borderstyle); $sheet->getStyle('C10')->applyFromArray($borderstyle); $sheet->getStyle('D10')->applyFromArray($borderstyle); 
$sheet->getStyle('E10')->applyFromArray($borderstyle); $sheet->getStyle('F10')->applyFromArray($borderstyle); $sheet->getStyle('G10')->applyFromArray($borderstyle); $sheet->getStyle('H10')->applyFromArray($borderstyle); 
$sheet->getStyle('I10')->applyFromArray($borderstyle); $sheet->getStyle('J10')->applyFromArray($borderstyle); $sheet->getStyle('K10')->applyFromArray($borderstyle); $sheet->getStyle('L10')->applyFromArray($borderstyle); 
$sheet->getStyle('M10')->applyFromArray($borderstyle); $sheet->getStyle('N10')->applyFromArray($borderstyle); 
// 設置行高
$sheet->getRowDimension('10')->setRowHeight(22);
// 水平、垂直居中
$sheet->getStyle('A10:N10')->applyFromArray($alignstyle);
 
if (!empty($adrinfo['yaowu'])) {
    
    // 合并單元格
    $sheet->mergeCells('A11:A'.$i);
    $sheet->setCellValue('A11','懷疑藥品');
    // 水平、垂直居中
    $sheet->getStyle('A11:A'.$i)->applyFromArray($alignstyle);
    // 設置邊框
    $sheet->getStyle('A11:A'.$i)->applyFromArray($borderstyle); 
    
    
    $k = 0;
    foreach ($adrinfo['yaowu'] as $v) {
        
        $k++;
        $sheet->setCellValue('B'.($k+10), str_replace('批準文號:','',$v[3]))  
	              //->setCellValue('C'.($k+10), str_replace('藥品','',$v[0]))  
	              ->setCellValue('D'.($k+10), str_replace('藥名:','',$v[0]))  
	              ->setCellValue('E'.($k+10), str_replace('公司:','',$v[1]))  
	              ->setCellValue('F'.($k+10), str_replace('產品批號:','',$v[2]))  
	              ->setCellValue('G'.($k+10), str_replace('用量:','',$v[5]))  
	              ->setCellValue('H'.($k+10), str_replace(array('如何用藥:','/'),'',$v[7]))  
	              ->setCellValue('I'.($k+10), str_replace(array('頻次:','/'),'',$v[6]))  
	              ->setCellValue('J'.($k+10), str_replace('開始服用該藥的日期:','',$v[9]))  
	              ->setCellValue('K'.($k+10), str_replace('停止服用該藥的日期:','',$v[10]))  
	              ->setCellValue('L'.($k+10), str_replace('為什么患者要使用這個藥品:','',$v[8]))
	              ->setCellValue('M'.($k+10), str_replace('停藥是否消失減輕:','',$v[12]))
	              ->setCellValue('N'.($k+10), str_replace('再次用藥是否再出出現:','',$v[13]));
	              
	    // 設置邊框
        $sheet->getStyle('B'.($k+10))->applyFromArray($borderstyle); $sheet->getStyle('C'.($k+10))->applyFromArray($borderstyle); $sheet->getStyle('D'.($k+10))->applyFromArray($borderstyle); $sheet->getStyle('E'.($k+10))->applyFromArray($borderstyle); $sheet->getStyle('F'.($k+10))->applyFromArray($borderstyle);
        $sheet->getStyle('G'.($k+10))->applyFromArray($borderstyle); $sheet->getStyle('H'.($k+10))->applyFromArray($borderstyle); $sheet->getStyle('I'.($k+10))->applyFromArray($borderstyle); $sheet->getStyle('J'.($k+10))->applyFromArray($borderstyle); $sheet->getStyle('K'.($k+10))->applyFromArray($borderstyle);
        $sheet->getStyle('L'.($k+10))->applyFromArray($borderstyle); $sheet->getStyle('M'.($k+10))->applyFromArray($borderstyle); $sheet->getStyle('N'.($k+10))->applyFromArray($borderstyle);
        // 設置行高
        $sheet->getRowDimension(($k+10))->setRowHeight(22);
        // 水平、垂直居中
        $sheet->getStyle('B'.($k+10).':N'.($k+10))->applyFromArray($alignstyle);
    }
}
 
// 并用藥品
$sheet->setCellValue('A'.($i+1),'并用藥品');
// 合并單元格
$sheet->mergeCells('A'.($i+1).':A'.($i+2));
// 水平、垂直居中
$sheet->getStyle('A'.($i+1).':A'.($i+2))->applyFromArray($alignstyle);
// 設置邊框
$sheet->getStyle('A'.($i+1).':A'.($i+2))->applyFromArray($borderstyle); 
$sheet->getStyle('B'.($i+1))->applyFromArray($borderstyle); $sheet->getStyle('C'.($i+1))->applyFromArray($borderstyle); $sheet->getStyle('D'.($i+1))->applyFromArray($borderstyle); $sheet->getStyle('E'.($i+1))->applyFromArray($borderstyle); $sheet->getStyle('F'.($i+1))->applyFromArray($borderstyle);
$sheet->getStyle('G'.($i+1))->applyFromArray($borderstyle); $sheet->getStyle('H'.($i+1))->applyFromArray($borderstyle); $sheet->getStyle('I'.($i+1))->applyFromArray($borderstyle); $sheet->getStyle('J'.($i+1))->applyFromArray($borderstyle); $sheet->getStyle('K'.($i+1))->applyFromArray($borderstyle);
$sheet->getStyle('L'.($i+1))->applyFromArray($borderstyle); $sheet->getStyle('M'.($i+1))->applyFromArray($borderstyle); $sheet->getStyle('N'.($i+1))->applyFromArray($borderstyle);
$sheet->getStyle('B'.($i+2))->applyFromArray($borderstyle); $sheet->getStyle('C'.($i+2))->applyFromArray($borderstyle); $sheet->getStyle('D'.($i+2))->applyFromArray($borderstyle); $sheet->getStyle('E'.($i+2))->applyFromArray($borderstyle); $sheet->getStyle('F'.($i+2))->applyFromArray($borderstyle);
$sheet->getStyle('G'.($i+2))->applyFromArray($borderstyle); $sheet->getStyle('H'.($i+2))->applyFromArray($borderstyle); $sheet->getStyle('I'.($i+2))->applyFromArray($borderstyle); $sheet->getStyle('J'.($i+2))->applyFromArray($borderstyle); $sheet->getStyle('K'.($i+2))->applyFromArray($borderstyle);
$sheet->getStyle('L'.($i+2))->applyFromArray($borderstyle); $sheet->getStyle('M'.($i+2))->applyFromArray($borderstyle); $sheet->getStyle('N'.($i+2))->applyFromArray($borderstyle);
 // 設置行高
$sheet->getRowDimension(($i+1))->setRowHeight(22);
$sheet->getRowDimension(($i+2))->setRowHeight(22);
 
// p($i+3);
// 不良反應事件名稱
$sheet->setCellValue('A'.($i+3),'不良反應/事件名稱:');
$sheet->setCellValue('G'.($i+3),'不良反應/事件發(fā)生時間:');
$sheet->setCellValue('H'.($i+3),$adrinfo['blfydate']);
// 設置邊框
$sheet->getStyle('A'.($i+3).':F'.($i+3))->applyFromArray($borderstyle);
$sheet->getStyle('G'.($i+3).':N'.($i+3))->applyFromArray($borderstyle);
// 合并單元格
$sheet->mergeCells('B'.($i+3).':F'.($i+3));
 // 設置行高
$sheet->getRowDimension(($i+3))->setRowHeight(22);
// 水平、垂直居中
$sheet->getStyle('A'.($i+3).':N'.($i+3))->applyFromArray($alignstyle);
 
 
// 不良反應過程描述
$sheet->setCellValue('A'.($i+4),'不良反應/事件過程描述(包括癥狀、體征、臨床檢驗等)及處理情況(可附頁):');
$jiancha_str = '';
if (!empty($adrinfo['jiancha'])) {
    $jiancha_str = "相關檢查檢驗情況:\r\n";
    foreach ($adrinfo['jiancha'] as $v){
        $jiancha_str .= "檢查日期:".str_replace("日期:","",$v[0]).";".$v[1].";".$v[2].";".$v[3].";".$v[4].";".$v[5].";\r\n";
    }
}
$str = "描述:".$adrinfo['blfyxijie']."。\r\n".$jiancha_str;
$sheet->setCellValue('A'.($i+5),$str);
$sheet->mergeCells('A'.($i+5).':N'.($i+5));
// 設置行高
$sheet->getRowDimension($i+5)->setRowHeight(50);
// 設置邊框
$sheet->getStyle('A'.($i+4).':N'.($i+5))->applyFromArray($borderstyle);
// 水平、垂直居中
// $sheet->getStyle('A'.($i+5).':N'.($i+5))->applyFromArray($alignstyle);
 
// 不良反應/事件的結果:
$sheet->setCellValue('A'.($i+6),'不良反應/事件的結果:');
// 設置邊框
$sheet->getStyle('A'.($i+6).':N'.($i+6))->applyFromArray($borderstyle);
// 設置行高
$sheet->getRowDimension(($i+6))->setRowHeight(22);
// 合并單元格
// $sheet->mergeCells('B'.($i+6).':N'.($i+6));
 
// 對原患疾病的影響
$sheet->setCellValue('A'.($i+7),'對原患疾病的影響:');
// 設置邊框
$sheet->getStyle('A'.($i+7).':N'.($i+7))->applyFromArray($borderstyle);
// 合并單元格
$sheet->mergeCells('B'.($i+7).':N'.($i+7));
// 設置行高
$sheet->getRowDimension(($i+7))->setRowHeight(22);
 
// 關聯性評價
$sheet->setCellValue('A'.($i+8),'關聯性評價');
$sheet->mergeCells('A'.($i+8).':A'.($i+9));
$sheet->setCellValue('B'.($i+8),'報告人評價:');
$sheet->setCellValue('K'.($i+8),'簽名:');
$sheet->setCellValue('L'.($i+8),$adrinfo['member']['name']);
$sheet->setCellValue('B'.($i+9),'報告單位評價:');
$sheet->setCellValue('K'.($i+9),'簽名:');
// 設置邊框
$sheet->getStyle('A'.($i+8).':N'.($i+9))->applyFromArray($borderstyle);
// 水平、垂直居中
$sheet->getStyle('A'.($i+8).':B'.($i+9))->applyFromArray($alignstyle);
// 設置行高
$sheet->getRowDimension(($i+8))->setRowHeight(22);
$sheet->getRowDimension(($i+9))->setRowHeight(22);
 
// 報告人信息
$sheet->setCellValue('A'.($i+10),'報告人信息');
$sheet->mergeCells('A'.($i+10).':A'.($i+11));
$sheet->setCellValue('B'.($i+10),'聯系電話:');
$sheet->setCellValue('C'.($i+10),$adrinfo['member']['tel']);
$sheet->setCellValue('F'.($i+10),'職業(yè):');
$sheet->setCellValue('I'.($i+10),'報告人科室:');
$sheet->setCellValue('B'.($i+11),'電子郵箱:');
$sheet->setCellValue('C'.($i+11),$adrinfo['member']['email']);
$sheet->setCellValue('F'.($i+11),'簽名:');
$sheet->setCellValue('G'.($i+11),$adrinfo['member']['name']);
$sheet->setCellValue('I'.($i+11),'報告日期:');
$sheet->setCellValue('J'.($i+11),date('Y-m-d',$adrinfo['createtime']));
 // 設置邊框
$sheet->getStyle('A'.($i+10).':N'.($i+11))->applyFromArray($borderstyle);
// 水平、垂直居中
$sheet->getStyle('A'.($i+10).':N'.($i+11))->applyFromArray($alignstyle);
// 設置行高
$sheet->getRowDimension(($i+10))->setRowHeight(22);
$sheet->getRowDimension(($i+11))->setRowHeight(22);
 
// 報告單位信息
$sheet->setCellValue('A'.($i+12),'報告單位信息');
$sheet->setCellValue('B'.($i+12),'單位名稱:');
$sheet->setCellValue('C'.($i+12),$adrinfo['member']['danwei']);
$sheet->setCellValue('F'.($i+12),'聯系人:');
$sheet->setCellValue('I'.($i+12),'電話:');
// 設置邊框
$sheet->getStyle('A'.($i+12).':N'.($i+12))->applyFromArray($borderstyle);
// 設置行高
$sheet->getRowDimension(($i+12))->setRowHeight(22);
// 水平、垂直居中
$sheet->getStyle('A'.($i+12).':N'.($i+12))->applyFromArray($alignstyle);
 
// 備注
$sheet->setCellValue('A'.($i+13),'備注');
$sheet->setCellValue('B'.($i+13),$adrinfo['qitayaowu']);
// 設置邊框
$sheet->getStyle('A'.($i+13).':N'.($i+13))->applyFromArray($borderstyle);
// 設置行高
$sheet->getRowDimension(($i+13))->setRowHeight(22);
// 水平、垂直居中
$sheet->getStyle('A'.($i+13).':N'.($i+13))->applyFromArray($alignstyle);
 
ob_end_clean();     //清除緩沖區(qū),避免亂碼
 
header('Content-Type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); 
// MIME 協(xié)議的擴展
header('Content-Disposition: attachment;filename="' . iconv("utf-8", "GB2312", $filename) . '.xlsx');
// 緩存控制
header('Cache-Control:max-age=0');
$write = IOFactory::createWriter($spreadsheet, 'Xlsx');
$write->save('php://output');

四、效果圖

以上就是ThinkPHP5+PhpSpreadsheet實現批量導出數據的詳細內容,更多關于ThinkPHP5 PhpSpreadsheet導出數據的資料請關注腳本之家其它相關文章!

相關文章

  • PHP從二維數組得到N層分類樹的實現代碼

    PHP從二維數組得到N層分類樹的實現代碼

    這篇文章主要介紹了PHP從二維數組得到N層分類樹的實現代碼,需要的朋友可以參考下
    2016-10-10
  • PHP開發(fā)負載均衡指南

    PHP開發(fā)負載均衡指南

    過去當運行一個大的web應用時候意味著運行一個大型的web服務器。因為你的應用吸引了大量的用戶,你將不得不在你的服務器里增加更多的內存和處理器。
    2010-07-07
  • php常用表單驗證類用法實例

    php常用表單驗證類用法實例

    這篇文章主要介紹了php常用表單驗證類用法,實例分析了php針對表單元素常用驗證技巧,需要的朋友可以參考下
    2015-06-06
  • php縮放圖片(根據寬高的等比例縮放)實例介紹

    php縮放圖片(根據寬高的等比例縮放)實例介紹

    設定寬高,不等比例縮放;設定寬度,等比例縮放;設定高度,等比例縮放;按比例,縮放至50%;縮放后直接輸出到屏幕等等,具體使用方法如下,感興趣的額朋友可以了解下哈
    2013-06-06
  • php 常用的系統(tǒng)函數

    php 常用的系統(tǒng)函數

    本文介紹了php 常用的系統(tǒng)函數,具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • php tpl模板引擎定義與使用示例

    php tpl模板引擎定義與使用示例

    這篇文章主要介紹了php tpl模板引擎定義與使用,結合實例形式分析了php模板引擎的定義與使用相關操作技巧,需要的朋友可以參考下
    2019-08-08
  • php中取得URL的根域名的代碼

    php中取得URL的根域名的代碼

    php中取得URL的根域名的代碼,需要的朋友可以參考下。
    2011-03-03
  • php 時間time與日期date之間的使用詳解及區(qū)別

    php 時間time與日期date之間的使用詳解及區(qū)別

    PHP中有time函數,也有date函數,這兩個函數在使用時候的區(qū)別很明顯。但更應注意,time和date是兩個完全不時的格式,當然還有一種字符串格式。本文重點介紹這幾者的區(qū)別。
    2016-11-11
  • php實現批量刪除掛馬文件及批量替換頁面內容完整實例

    php實現批量刪除掛馬文件及批量替換頁面內容完整實例

    這篇文章主要介紹了php實現批量刪除掛馬文件及批量替換頁面內容的方法,涉及php文件與目錄的遍歷、查找以及字符串與數組的遍歷與替換操作相關技巧,適用于utf-8編碼環(huán)境,需要的朋友可以參考下
    2016-07-07
  • PHP解析RSS的方法

    PHP解析RSS的方法

    這篇文章主要介紹了PHP解析RSS的方法,實例分析了php解析RSS的原理與XML文件的操作技巧,需要的朋友可以參考下
    2015-03-03

最新評論

芜湖市| 平和县| 武隆县| 武鸣县| 遵义市| 安康市| 建水县| 平安县| 健康| 南投市| 渭南市| 江油市| 水城县| 当阳市| 昌邑市| 唐海县| 贵定县| 德化县| 威宁| 偏关县| 伽师县| 雅安市| 莆田市| 西乌珠穆沁旗| 洛川县| 靖西县| 通化县| 定边县| 如皋市| 金川县| 左云县| 越西县| 磴口县| 增城市| 墨玉县| 抚顺市| 林州市| 廊坊市| 思南县| 凤城市| 乐平市|