zoukankan      html  css  js  c++  java
  • 关于导出Excel

    导出Excel,是我作为程序员来做比较无头绪的功能,还好有我的小付哥,当我还是个小菜鸟(现在还是小菜鸟),他用超强的学习能力,做功能,带我做功能
    不说废话了

    1.PHP-Excel,,在调用时要引入Excel5.php,和PHPExcel.php两个文件。

    2.直接上代码行不行(这个代码是别人的,俺自己也写不来)

    require_once '../../PHPExcel-1.7.6/PHPExcel.php';
        require_once '../../PHPExcel-1.7.6/Excel5.php';
    /*2014年1月14日 12:05:49吴文付-------杨玲,哈哈
    phpexcel默认的中文处理是utf-8 因此在填充单元格时,必须转码
    
    mb_convert_encoding('货品编码', "utf-8", "GB2312")
    */    
        
        header("Content-Type: application/vnd.ms-excel; charset=GB2312");
    
        
        // 创建一个处理对象实x8B
        $objExcel = new PHPExcel();
        
        // 创建文件格式写入对象实例, uncomment
        $objWriter = new PHPExcel_Writer_Excel5($objExcel);
        
        //设置文档基本属xA7/**似乎一般情况下用不xB0**/
        $objProps = $objExcel->getProperties();
        $objProps->setCreator("wwf");
        $objProps->setLastModifiedBy("wwf");
        $objProps->setTitle("元器件仓库");
        $objProps->setSubject("元器件仓库");
        $objProps->setDescription("元器件仓库");
        $objProps->setKeywords("元器件仓库");
        $objProps->setCategory("元器件仓库");
        
        //*************************************       
        //设置当前的sheet索引,用于后续的内容操作x82       
        //一般只有在使用多个sheet的时候才需要显示调用x82       
        //缺省情况下,PHPExcel会自动创建第一个sheet被设置SheetIndex=0       
        $objExcel->setActiveSheetIndex(0);       
        $objActSheet = $objExcel->getActiveSheet();       
              
        //设置当前活动sheet的名
            
        $objActSheet->setTitle(mb_convert_encoding('元器件库存表', "utf-8", "GB2312"));   
        
        //设置宽度,这个值和EXCEL里的不同,不知道是什么单位,略小于EXCEL中的宽度   
        $objActSheet->getColumnDimension('A')->setWidth(10); 
        $objActSheet->getColumnDimension('B')->setWidth(10); 
        $objActSheet->getColumnDimension('C')->setWidth(20); 
        $objActSheet->getColumnDimension('D')->setWidth(20); 
        $objActSheet->getColumnDimension('E')->setWidth(10); 
        
        //$objActSheet->getRowDimension(1)->setRowHeight(30);  //高度
        //$objActSheet->getColumnDimension('D')->setWidth(50); 
        //设置单元格的  
        //获得日期
        $showtime=date("Y-m-d");    
        $objActSheet->setCellValue('A1', mb_convert_encoding($showtime.'元器件库存清单', "utf-8", "GB2312"));    
        //合并单元xBC   
        $objActSheet->mergeCells('A1:E1');    
        //设置标题单元格样  
        $objStyleA1 = $objActSheet->getStyle('A1');       
        $objStyleA1->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);   
        $objFontA1 = $objStyleA1->getFont();       
        $objFontA1->setName('宋体');       
        $objFontA1->setSize(18);     
        $objFontA1->setBold(true);  
        
        //设置表格标题栏内
        $objActSheet->setCellValue('A2', 'ID');
        $objActSheet->setCellValue('B2', mb_convert_encoding('货品编码', "utf-8", "GB2312"));
        $objActSheet->setCellValue('C2', mb_convert_encoding('仓库', "utf-8", "GB2312"));    
        $objActSheet->setCellValue('D2', mb_convert_encoding('货品名称', "utf-8", "GB2312"));    
        $objActSheet->setCellValue('E2', mb_convert_encoding('实存数', "utf-8", "GB2312"));
        //$objActSheet->setCellValue('F2', mb_convert_encoding('货品编码', "utf-8", "GB2312"));    
        //设置表头 单元居中对齐   
        $objActSheet->getStyle('A2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objActSheet->getStyle('B2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objActSheet->getStyle('C2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objActSheet->getStyle('D2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $objActSheet->getStyle('E2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        //$objActSheet->getStyle('F2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        //设置表头  单元xBC 边框   
        $objActSheet->getStyle('A2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
        $objActSheet->getStyle('B2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
        $objActSheet->getStyle('C2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
        $objActSheet->getStyle('D2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
        $objActSheet->getStyle('E2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
        //$objActSheet->getStyle('F2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    //链接数据库服务器
    include "../../include/sql.php";
    $query = "SELECT ck_id,ck_num,ck_name,ck_num3 FROM rd_cangku";
    $result = mysql_query($query) or die("Query failed : " . mysql_error());
    $n=3;
    while ($line = mysql_fetch_array($result, MYSQL_NUM)) {
        $m='A';
        
        foreach ($line as $col_value) {
            
            //表内xB9 单元 居中
            $objActSheet->getStyle($m.$n)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
            
            if($m=='C'){
                $objActSheet->setCellValue($m.$n, mb_convert_encoding('元器件仓库', "utf-8", "GB2312"));
                $m++; 
                }
                
            
            
                //这里负责转码 excel默认是
            $col_value = mb_convert_encoding($col_value, "utf-8", "GB2312");  
            $objActSheet->setCellValue($m.$n,$col_value ); 
            $m++;
                
        }
        $n++;
    }
        
        //输出内容       
        //$outputFileName =time().".xls";  
        $outputFileName ="cangku.xls";
        
        //如果存在旧文件,则删
        if (file_exists($outputFileName)) {
            unlink ($outputFileName);
      }
        
        //到文       
        $objWriter->save($outputFileName);
        
    
        //下面这个,属于链接,自己看嘛也可以<script>location='$outputFileName'</script>
      //这个看自己需要嘛
    echo("<a href='$outputFileName' target='_blank'>点击下载</a>");
  • 相关阅读:
    C#多线程(16):手把手教你撸一个工作流
    C#多线程(15):任务基础③
    C#多线程(14):任务基础②
    C#多线程(13):任务基础①
    C#多线程(12):线程池
    C#多线程(11):线程等待
    C#多线程(10):读写锁
    C#多线程(9):多阶段并行线程
    C#多线程(8):线程完成数
    C#多线程(7):手动线程通知
  • 原文地址:https://www.cnblogs.com/linglingyang/p/3877291.html
Copyright © 2011-2022 走看看