El exitoso método de PHPExcel para generar tablas, thinkphp usa PHPExcel para generar tablas

1. Generar efecto

 

 

 

2. Método de implementación

/ * 
     * Mi lista de compras exporta los datos de agrupación de materiales que he dividido 
     * tabla de Excel 
     * $ cg_id = identificación de compra Si solo se pasa la identificación de compra, todos los materiales de mi grupo se exportarán 
     * * / 
    public  function cailiao_fenzu_excel () {
         if ( ! IS_POST) $ this- > error ('Error de acceso', U ('Index / index')); // use post 
        $ cg_id = I ('cg_id' );
         $ fz_id = I ('fz_id' );
         if ( ! $ cg_id ) $ el esta -> error ( 'compra no adquirió el ID' );
         $ usuario = la sesión ( 'UID' );
         SI ! ( $ usuario [ 'UID']) $ el presente-> error ('Por favor, inicie sesión primero', U ('Usuario / inicio de sesión' ));
         if (! $ fz_id ) {
             // La estructura de diseño requerida para generar el formulario 
            $ conf = array (
                 'xuhao' => 'Número de serie', 
                ' id '=>' ID ', 
                ' title '=>' nombre del dispositivo ', 
                ' guige '=>' tamaño / modelo / especificación ', 
                ' cz_title '=>' material ', 
                ' dw_title '=>' unit ', 
                ' xuyao_num '=>' Cantidad ', 
                ' des '=>' Observaciones ', 
                ' fujian_title '=>' Accesorios ',
                'daohuo_time' => "fecha de llegada", 
                'zhongliang' => 'peso',  
                'danjia' => 'unit unit',
                'dinero' => 'cantidad'
            ); 
            $ headArr = array_values ( $ conf );
             $ dataHeader = array_keys ( $ conf ); 

            $ fj_name = '2020414 Steel Purchase Order'; // El nombre del archivo generado 
            $ xls = '(1) .xls'; // Archivo No. 
            $ fileName [0] = $ fj_name ; // El nombre del archivo generado 
            $ fileName [1] = $ fj_name . $ Xls ;
             $ newData = $ r ['cailiao_list'] ['list']; // Datos a generar De acuerdo con el resultado del pedido de datos $ conf
            :: dataExportOut Ser ( $ headArr , $ newData , $ DataHeader , $ archivo ); // generar hoja de cálculo Excel 

        } 


}

 

 

/ * * 
     * De acuerdo con la tabla de datos que se derivan 
     * / 
    protegida  función dataExportOut ( $ headArr , $ newData , $ DataHeader , $ archivo ) { 
        Vendedor ( "PHPExcel.PHPExcel" );
         $ objPHPExcel = new new \ PHPExcel ();
         $ objPHPExcel -> getProperties ();
         $ objPHPExcel- > getActiveSheet () -> getDefaultStyle () -> getFont () -> setSize (12); // Establezca el tamaño de fuente predeterminado 
        $ objPHPExcel- > getActiveSheet () -> getDefaultRowDimension () -> setRowHeight ( 28); // La altura predeterminada de todas las celdas (filas) es 
        $ objPHPExcel-> getActiveSheet () -> getDefaultColumnDimension () -> setWidth (17); // El ancho predeterminado de todas las celdas (columnas) 
        $ objPHPExcel- > getDefaultStyle () -> getAlignment () -> setHorizontal (\ PHPExcel_Style_Alignment :: HORIZONTAL_CENTER); // Todo el texto de la celda está centrado 
        $ objPHPExcel- > getDefaultStyle () -> getAlignment () -> setVertical (\ PHPExcel_Style_Alignment :: VERTICAL_CENTER); // Todo el texto de la celda está centrado verticalmente 
        $ objPHPExcel- > getActiveSheet () -> getStyle (' A: Z ') -> getAlignment () -> setWrapText ( TRUE ); // línea A a Z, la cadena de caracteres se ajusta automáticamente, no estira la altura de la celda y no afecta a otras configuraciones 
        // Título personalizado (primera columna ) 
        $ Título = $ fileName [0]; // Título 
        $ objPHPExcel-> getActiveSheet () -> mergeCells ('A1: M1'); // Combinar celdas 
        $ objPHPExcel- > getActiveSheet () -> getRowDimension ('1') -> setRowHeight (40); // Establecer la configuración de altura de fila Una columna 
        $ objPHPExcel- > getActiveSheet () -> getStyle ('A1') -> getFont () -> setSize (18); // Establezca el tamaño del texto para establecer la primera columna 
        $ objPHPExcel- > getActiveSheet () -> getStyle (' A1 ') -> getFont () -> setBold ( true ); // Establezca si desea poner en negrita 
        $ objPHPExcel- > getActiveSheet () -> getStyle (' A1 ') -> getAlignment () -> setHorizontal (\ PHPExcel_Style_Alignment :: HORIZONTAL_CENTER :: HORIZONTAL_CENTER ); // Establezca el texto a la izquierda (HORIZONTAL_LEFT, predeterminado), medio (HORIZONTAL_CENTER), derecha (HORIZONTAL_RIGHT) 
        $ objPHPExcel-> getActiveSheet () -> getStyle ('A1') -> getAlignment () -> setVertical (\ PHPExcel_Style_Alignment :: VERTICAL_CENTER); // Centro vertical 
        $ objPHPExcel- > setActiveSheetIndex (0) -> setCellValue (A. '1' , $ title ); // Título 
        // Información básica del proveedor personalizado, encabezado de tabla (segunda columna) 
        $ objPHPExcel- > getActiveSheet () -> getRowDimension ('2') -> setRowHeight (28); // Establecer fila Altura 
        $ objPHPExcel- > getActiveSheet () -> getStyle ('2') -> getFont () -> setBold ( true ); // Establezca si desea negrita a la segunda columna negrita 
        $ objPHPExcel- > getActiveSheet () -> mergeCells ('A2: C2'); // Combinar celda 
        $ objPHPExcel- >setActiveSheetIndex (0) -> setCellValue (A. '2', 'Nombre completo de la empresa');// Título 
        $ objPHPExcel- > getActiveSheet () -> mergeCells ('D2: F2'); // Combinar celda 
        $ objPHPExcel- > setActiveSheetIndex (0) -> setCellValue (D. '2', 'Dirección de la empresa (provincia- Ciudad-Distrito-Dirección detallada) '); // Título 
        $ objPHPExcel- > getActiveSheet () -> mergeCells (' G2: I2 '); // Combinar celdas 
        $ objPHPExcel- > setActiveSheetIndex (0) -> setCellValue (G. '2', 'Contacto'); // Título 
        $ objPHPExcel- > getActiveSheet () -> mergeCells ('J2: L2'); // Combinar celdas 
        $ objPHPExcel- > setActiveSheetIndex (0) -> setCellValue (J. '2', 'Número de contacto');// Título 
        // Combina la tercera columna de celdas (tercera columna) según 
        sea ​​necesario $ objPHPExcel-> getActiveSheet () -> mergeCells ('A3: C3'); // Combinar celdas 
        $ objPHPExcel- > getActiveSheet () -> mergeCells ('D3: F3'); // Combinar celdas 
        $ objPHPExcel- > getActiveSheet ( ) -> mergeCells ('G3: I3'); // Combinar celdas 
        $ objPHPExcel- > getActiveSheet () -> mergeCells ('J3: L3'); // Combinar celdas 

        // Establecer el encabezado de la tabla (columna 4) 
        $ objPHPExcel- > getActiveSheet () -> getRowDimension ('4') -> setRowHeight (28); // Establece la altura de la fila 
        $ objPHPExcel- > getActiveSheet () -> getStyle ('4') -> getFont () -> setBold ( verdadero );// Establece si poner en negrita la cuarta columna bold 
        $ key = ord ("A" );
        foreach ( $ headArr  como  $ v ) {
             $ columnas = chr ( $ clave );
            $ objPHPExcel -> setActiveSheetIndex (0) -> setCellValue ( $ column . '4', $ v );
            $ clave + = 1 ; 
        } 
        // 内容 (第 5 列 开始)
        if ( $ newData ) {
             $ column = 5 ;
            $ objActSheet = $ objPHPExcel -> getActiveSheet ();
            foreach ( $ newData  como  $ key=> $ filas ) { // Escritura de línea 
                $ span = ord ("A" );
                 foreach ( $ filas  como  $ keyName => $ value ) { // Escritura de columna 
                    foreach ( $ dataHeader  como  $ head ) {
                         if ( $ head == $ keyName ) {
                             // Si hay un archivo adjunto, deje que la fuente de la celda sea roja 
                            if ( $ head == 'fujian_title' && $ value ! = 'None' ) {
                                 $ val= chr ( $ span ). $ column ;
                                 $ objPHPExcel- > getActiveSheet () -> getStyle ( $ val ) -> getFont () -> getColor () -> setRGB ('FF0000'); // Establecer color de fuente de celda 
                            }
                             $ objActSheet- > setCellValue ( chr ( $ span ). $ column , $ value );
                             $ span ++ ; 
                        } 
                    } 
                } 
                $ column ++ ; 
            }
        } 

        // Método de descarga directa 
        / * $ fileName_1 = iconv ("utf-8", "gb2312", $ fileName [1]); // Cambiar el nombre de la tabla 
        $ objPHPExcel-> setActiveSheetIndex (0); // Establecer la hoja de actividades El índice va a la primera tabla, por lo que Excel abre esta es la primera tabla 
        ob_end_clean (); 
        ob_start (); 
        header ('Content-Type: application / vnd.ms-excel; charset = UTF-8'); 
        header (" Disposición de contenido: archivo adjunto; filename = '$ fileName_1' "); 
        header ('Cache-Control: max-age = 0'); * / 
        $ objWriter = \ PHPExcel_IOFactory :: createWriter ( $ objPHPExcel , 'Excel5' );
         / / $ objWriter-> save ('php: // output');// descarga de archivos a través del navegador 
        // Método II 
        // Guardar el archivo en el directorio del servidor 
        $ fj_name=  $ _SERVER['DOCUMENT_ROOT']. '/ Uploads / baojia_excel /'. $ fileName [1 ];
        $ objWriter -> guardar ( $ fj_name );
        retorno 1 ; 
    }

 

Supongo que te gusta

Origin www.cnblogs.com/zc290987034/p/12695631.html
Recomendado
Clasificación