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 ; }