PHP实现excel导出

news/2024/7/3 13:50:46 标签: php, python, 前端

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

1:前端代码

<div id=‘export’>导出excel表单</div>

// //导入excel文件
$("#export").on('click', function(){
        
        $.ajax({
            url:"importexcel.php",
            type:'POST',
            dataType:'json',
            data:{},
            success:function(list) {
                console.log(list)
                location.href ="跳转页面";                
            },
            error:function(){
               console.log("请求失败")

             }
        });
});

2:PHP代码

//从数据库获取需要导出的数据
        $stockData=$data['data']['data'];//获取数据

//调用导出的方法
        exportData($stockData);//execl导出
        die();

3:导出方法

function exportData($stockData){//execl导出
    //加载excel类文件
        require_once "/Excel/PHPExcel.php";
        require_once '/Excel/PHPExcel/IOFactory.php';
        require_once '/Excel/PHPExcel/Writer/Excel5.php';
        $resultPHPExcel = new PHPExcel();//实例化Excel类

        // 列名赋值
        $resultPHPExcel->getActiveSheet()->setCellValue('A1', '编号')
                                        ->setCellValue('B1', '型号')
                                        ->setCellValue('C1', '品名')
                                        ->setCellValue('D1', '尺寸(毫米)')
                                        ->setCellValue('E1', '体积(立方米)')
                                        ->setCellValue('F1', '产品类别')
                                        ->setCellValue('G1', '产品属性')
                                        ->setCellValue('H1', '产品品类')
                                       

        //设置表格宽度
        $resultPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10);
        $resultPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20);
        $resultPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(50);
        $resultPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(30);
        $resultPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(30);
        $resultPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(20);
        $resultPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(20);
        $resultPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(20);
       

        $i=2;//初始值

        // 列名表头文字加粗
        $resultPHPExcel->getActiveSheet()->getStyle('A1:H1')->getFont()->setBold(true);
        // 列表头文字居中
        $resultPHPExcel->getActiveSheet()->getStyle('A1H1')->getAlignment()
            ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

        foreach($stockData as $item){
        
               // 设置所有垂直居中
            $resultPHPExcel->getActiveSheet()->getStyle('A' . ($i-1) . ':' . 'H' . $i)->getAlignment()
                ->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);

            // 设置格式为文本 
            $resultPHPExcel->getActiveSheet()->getStyle('A' . ($i-1)  . ':' . 'H' . $i)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
            // 居中
            $resultPHPExcel->getActiveSheet()->getStyle('A' . ($i-1)  . ':' . 'H' . $i)->getAlignment()
            ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
            //赋值
            $resultPHPExcel->getActiveSheet()->setCellValue('A' . $i, $i-1)
                                        ->setCellValue('B' . $i, $item['parts_model'])
                                        ->setCellValue('C' . $i, $item['parts_name'])
                                        ->setCellValue('D' . $i, $item['parts_length'].'*'.$item['parts_width'].'*'.$item['parts_height'])
                                        ->setCellValue('E' . $i, $item['parts_volume'])
                                        ->setCellValue('F' . $i, $item['class'])
                                        ->setCellValue('G' . $i, $attribute)
                                        ->setCellValue('H' . $i, $item['category'])
                                  
            $i ++;
        }
        //表单名称
        $typename='库存列表';
        $outputFileName =$typename.'.xls';
        // 设置sheet名
        $resultPHPExcel->getActiveSheet()->setTitle('库存列表');
        ob_end_clean();//清除缓冲区,避免乱码

        $xlsWriter = new PHPExcel_Writer_Excel5($resultPHPExcel);
        header("Content-Type: application/force-download");
        header("Content-Type: application/octet-stream");
        header("Content-Type: application/download");
        header('Content-Disposition:inline;filename="'.$outputFileName.'"');
        header("Content-Transfer-Encoding: binary");
        header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
        header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
        header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
        header("Pragma: no-cache");
        $xlsWriter->save( "php://output" );
        // die($data);
}

转载于:https://my.oschina.net/lixiaoting/blog/2988643


http://www.niftyadmin.cn/n/1791015.html

相关文章

异常处理机制:两种方式

throws 异常类型 import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException;/*** author xianyu* version 1.0* date 2020/1/1 15:53*/ public class ExceptionTest2 {public static void main(String[] arg…

MapReduce之Reduce Join

一 介绍 Reduce Join其主要思想如下&#xff1a; 在map阶段&#xff0c;map函数同时读取两个文件File1和File2&#xff0c;为了区分两种来源的key/value数据对&#xff0c;对每条数据打一个标签&#xff08;tag&#xff09;&#xff0c; 比如&#xff1a;tag0表示来自文件File1…

Java的23种设计模式之单列设计模式

饿汉式单列模式类&#xff1a;在这个类每次加载到内存中就直接把instance实例化好了 package com.xianyu.singleton;/*** author xianyu* version 1.0* date 2020/3/12 16:35* 设计模式1: 单列设计模式*/ public class Program1 {public static void main(String[] args) {// …

vue-cli keep-alive用法以及activated,deactivated

keep-alive用法 <keep-alive>是Vue的内置组件&#xff0c;能在组件切换过程中将状态保留在内存中&#xff0c;防止重复渲染DOM。 include: 字符串或正则表达式。只有匹配的组件会被缓存。exclude: 字符串或正则表达式。任何匹配的组件都不会被缓存。import Vue from vue …

小型电子声光礼花器电子烟花爆竹电路设计

节日和庆典时燃放礼花&#xff0c;其绚丽缤纷的图案&#xff0c;热烈的爆炸声、欢乐的气氛&#xff0c;能给人们留下美好的印象&#xff0c;但有一定的烟尘污染和爆炸危险隐患。本电路可以模拟礼花燃放装置&#xff0c;达到声型兼备的效果&#xff0c;给人们在安全、环保的环境…

spring boot 配置 JPA

application.properties的配置 spring.datasource.platformpostgres spring.datasource.urljdbc:postgresql://localhost:5432/to_database spring.datasource.usernamepostgres spring.datasource.password123456789 spring.jpa.properties.hibernate.dialect org.hibernate.…

字节顺序

字节顺序 #include <stdio.h>typedef int* int_ptr; typedef unsigned char* byte_ptr;void show_bytes( byte_ptr start, int len ){int i;for( i 0; i < len; i ){printf( " %4.2x", start[i] );}printf( "\n" );}void show_int( int x ){show…

Java原型模式--拷贝

package com.xianyu.prototype;import java.util.Date;/*** author xianyu* version 1.0* date 2020/3/15 21:36* 复制视频源文件* 1. 实现一个接口* 2. 重写一个方法*/ public class Video implements Cloneable{ // 实现一个接口private String name;private Date createTim…