• phpExcel中文帮助手册


    phpExcel中文帮助手册


    Admin
    2011年11月13日

    名人名言:上人生的旅途吧。前途很远,也很暗。然而不要怕。不怕的人的面前才有路。——有岛武郎

    下面是总结的几个应用办法


    include ""PHPExcel.php"";
    include ""PHPExcel/Writer/Excel2007.php"";
    //或者include ""PHPExcel/Writer/Excel5.php""; 用于输出.xls的
    创建一个excel
    ¥objPHPExcel = new PHPExcel();


    保存excel—2007格局
    ¥objWriter = new PHPExcel_Writer_Excel2007(¥objPHPExcel);
    //或者¥objWriter = new PHPExcel_Writer_Excel5(¥objPHPExcel); 非2007格局
    ¥objWriter->save("xxx.xlsx");
    直接输出到浏览器
    ¥objWriter = new PHPExcel_Writer_Excel5(¥objPHPExcel);
    header("Pragma: public");
    header("Expires: 0″);
    header("Cache-Control:must-revalidate, post-check=0, pre-check=0″);
    header("Content-Type:application/force-download");
    header("Content-Type:application/vnd.ms-execl");
    header("Content-Type:application/octet-stream");
    header("Content-Type:application/download");;
    header(""Content-Disposition:attachment;filename="resume.xls""");
    header("Content-Transfer-Encoding:binary");
    ¥objWriter->save(""php://output"");


    ——————————————————————————————————————–


    phpExcel中文手册
    设置excel的属性:
    创建人
    ¥objPHPExcel->getProperties()->setCreator("Maarten Balliauw");
    最后批改人
    ¥objPHPExcel->getProperties()->setLastModifiedBy("Maarten Balliauw");
    题目
    ¥objPHPExcel->getProperties()->setTitle("Office 2007 XLSX Test Document");
    题目
    ¥objPHPExcel->getProperties()->setSubject("Office 2007 XLSX Test Document");
    描述
    ¥objPHPExcel->getProperties()->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.");
    关键字
    ¥objPHPExcel->getProperties()->setKeywords("office 2007 openxml php");
    种类
    ¥objPHPExcel->getProperties()->setCategory("Test result file");
    ——————————————————————————————————————–
    设置当前的sheet
    ¥objPHPExcel->setActiveSheetIndex(0);


    设置sheet的name
    ¥objPHPExcel->getActiveSheet()->setTitle(""Simple"");


    设置单位格的值
    ¥objPHPExcel->getActiveSheet()->setCellValue(""A1"", ""String"");
    ¥objPHPExcel->getActiveSheet()->setCellValue(""A2"", 12);
    ¥objPHPExcel->getActiveSheet()->setCellValue(""A3"", true);
    ¥objPHPExcel->getActiveSheet()->setCellValue(""C5"", ""=SUM(C2:C4)"");
    ¥objPHPExcel->getActiveSheet()->setCellValue(""B8"", ""=MIN(B2:C5)"");


    归并单位格
    ¥objPHPExcel->getActiveSheet()->mergeCells(""A18:E22"");


    分别单位格
    ¥objPHPExcel->getActiveSheet()->unmergeCells(""A28:B28"");



    保护cell
    ¥objPHPExcel->getActiveSheet()->getProtection()->setSheet(true); // Needs to be set to true in order to enable any worksheet protection!
    ¥objPHPExcel->getActiveSheet()->protectCells(""A3:E13"", ""PHPExcel"");


    设置格局
    // Set cell number formats
    echo date(""H:i:s"") . " Set cell number formats ";
    ¥objPHPExcel->getActiveSheet()->getStyle(""E4"")->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE);
    ¥objPHPExcel->getActiveSheet()->duplicateStyle( ¥objPHPExcel->getActiveSheet()->getStyle(""E4""), ""E5:E13"" );


    设置宽width
    // Set column widths
    ¥objPHPExcel->getActiveSheet()->getColumnDimension(""B"")->setAutoSize(true);
    ¥objPHPExcel->getActiveSheet()->getColumnDimension(""D"")->setWidth(12);


    设置font
    ¥objPHPExcel->getActiveSheet()->getStyle(""B1"")->getFont()->setName(""Candara"");
    ¥objPHPExcel->getActiveSheet()->getStyle(""B1"")->getFont()->setSize(20);
    ¥objPHPExcel->getActiveSheet()->getStyle(""B1"")->getFont()->setBold(true);
    ¥objPHPExcel->getActiveSheet()->getStyle(""B1"")->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);
    ¥objPHPExcel->getActiveSheet()->getStyle(""B1"")->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE);
    ¥objPHPExcel->getActiveSheet()->getStyle(""E1"")->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE);
    ¥objPHPExcel->getActiveSheet()->getStyle(""D13"")->getFont()->setBold(true);
    ¥objPHPExcel->getActiveSheet()->getStyle(""E13"")->getFont()->setBold(true);


    设置align
    ¥objPHPExcel->getActiveSheet()->getStyle(""D11"")->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
    ¥objPHPExcel->getActiveSheet()->getStyle(""D12"")->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
    ¥objPHPExcel->getActiveSheet()->getStyle(""D13"")->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
    ¥objPHPExcel->getActiveSheet()->getStyle(""A18"")->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_JUSTIFY);
    //垂直居中
    ¥objPHPExcel->getActiveSheet()->getStyle(""A18"")->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);


    设置column的border
    ¥objPHPExcel->getActiveSheet()->getStyle(""A4"")->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
    ¥objPHPExcel->getActiveSheet()->getStyle(""B4"")->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
    ¥objPHPExcel->getActiveSheet()->getStyle(""C4"")->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
    ¥objPHPExcel->getActiveSheet()->getStyle(""D4"")->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
    ¥objPHPExcel->getActiveSheet()->getStyle(""E4"")->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);


    设置border的color
    ¥objPHPExcel->getActiveSheet()->getStyle(""D13"")->getBorders()->getLeft()->getColor()->setARGB(""FF993300"");
    ¥objPHPExcel->getActiveSheet()->getStyle(""D13"")->getBorders()->getTop()->getColor()->setARGB(""FF993300"");
    ¥objPHPExcel->getActiveSheet()->getStyle(""D13"")->getBorders()->getBottom()->getColor()->setARGB(""FF993300"");
    ¥objPHPExcel->getActiveSheet()->getStyle(""E13"")->getBorders()->getTop()->getColor()->setARGB(""FF993300"");
    ¥objPHPExcel->getActiveSheet()->getStyle(""E13"")->getBorders()->getBottom()->getColor()->setARGB(""FF993300"");
    ¥objPHPExcel->getActiveSheet()->getStyle(""E13"")->getBorders()->getRight()->getColor()->setARGB(""FF993300"");


    设置填充色彩
    ¥objPHPExcel->getActiveSheet()->getStyle(""A1"")->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
    ¥objPHPExcel->getActiveSheet()->getStyle(""A1"")->getFill()->getStartColor()->setARGB(""FF808080"");
    ¥objPHPExcel->getActiveSheet()->getStyle(""B1"")->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
    ¥objPHPExcel->getActiveSheet()->getStyle(""B1"")->getFill()->getStartColor()->setARGB(""FF808080"");


    加图片
    ¥objDrawing = new PHPExcel_Worksheet_Drawing();
    ¥objDrawing->setName(""Logo"");
    ¥objDrawing->setDescription(""Logo"");
    ¥objDrawing->setPath(""./images/officelogo.jpg"");
    ¥objDrawing->setHeight(36);
    ¥objDrawing->setWorksheet(¥objPHPExcel->getActiveSheet());


    ¥objDrawing = new PHPExcel_Worksheet_Drawing();
    ¥objDrawing->setName(""Paid"");
    ¥objDrawing->setDescription(""Paid"");
    ¥objDrawing->setPath(""./images/paid.png"");
    ¥objDrawing->setCoordinates(""B15"");
    ¥objDrawing->setOffsetX(110);
    ¥objDrawing->setRotation(25);
    ¥objDrawing->getShadow()->setVisible(true);
    ¥objDrawing->getShadow()->setDirection(45);
    ¥objDrawing->setWorksheet(¥objPHPExcel->getActiveSheet());


    //处理惩罚中文输出题目


    须要将字符串转化为UTF-8编码,才干正常输出,不然中文字符将输出为空白,如下处理惩罚:


     ¥str  = iconv(""gb2312"", ""utf-8"", ¥str);


    或者你可以写一个函数专门处理惩罚中文字符串:


    function convertUTF8(¥str)
    {
       if(empty(¥str)) return """";
       return  iconv(""gb2312"", ""utf-8"", ¥str);
    }


    //从数据库输出数据处理惩罚体式格式


    从数据库读取数据如:


    ¥db = new Mysql(¥dbconfig);
    ¥sql = "SELECT * FROM  表名";
    ¥row = ¥db->GetAll(¥sql);  // ¥row 为二维数组


    ¥count = count(¥row);
    for (¥i = 2; ¥i <= ¥count+1; ¥i++) {


     ¥objPHPExcel->getActiveSheet()->setCellValue(""A"" . ¥i, convertUTF8(¥row[¥i-2][1]));
     ¥objPHPExcel->getActiveSheet()->setCellValue(""B"" . ¥i, convertUTF8(¥row[¥i-2][2]));
     ¥objPHPExcel->getActiveSheet()->setCellValue(""C"" . ¥i, convertUTF8(¥row[¥i-2][3]));
     ¥objPHPExcel->getActiveSheet()->setCellValue(""D"" . ¥i, convertUTF8(¥row[¥i-2][4]));
     ¥objPHPExcel->getActiveSheet()->setCellValue(""E"" . ¥i, convertUTF8(date("Y-m-d", ¥row[¥i-2][5])));
     ¥objPHPExcel->getActiveSheet()->setCellValue(""F"" . ¥i, convertUTF8(¥row[¥i-2][6]));


     ¥objPHPExcel->getActiveSheet()->setCellValue(""G"" . ¥i, convertUTF8(¥row[¥i-2][7]));
     ¥objPHPExcel->getActiveSheet()->setCellValue(""H"" . ¥i, convertUTF8(¥row[¥i-2][8]));


    }



    在默认sheet后,创建一个worksheet
    echo date(""H:i:s"") . " Create new Worksheet object ";
    ¥objPHPExcel->createSheet();


    ¥objWriter = PHPExcel_IOFactory::createWriter(¥objExcel, ""Excel5"");
    ¥objWriter-save(""php://output"");

  • 相关阅读:
    雅礼集训2017day5乱写
    任意值域最长公共子序列问题
    雅礼集训2017day4乱写
    雅礼集训2017day2乱写
    SP839
    雅礼集训2017day1乱写
    CF671E
    仅维护当前区间影响类问题的线段树
    「雅礼集训 2017 Day4」编码
    Codeforces Round #503 Div. 2
  • 原文地址:https://www.cnblogs.com/ldms/p/3480189.html
Copyright © 2020-2023  润新知