php解析進入網站搜尋爬蟲,並針對不同的搜尋爬蟲定義顯示或隱藏內容的方法。

搜尋引擎網路爬蟲,自己控制被加入顯示的內容。
簡單說明一下,先設定需過濾的搜尋引擎為陣列形態,
然後在進行回圈比對 搜尋引擎,之後再來比對不想顯示的內容。

PHPExcel 類型查詢

例如 框線類型
$objPHPExcel->getActiveSheet()->getStyle('H2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_DASHED);

查詢還有哪些寬線類型
Classes/PHPExcel/Style/Border.php

 /* Border style */
 const BORDER_NONE    = 'none';
 const BORDER_DASHDOT   = 'dashDot';
 const BORDER_DASHDOTDOT   = 'dashDotDot';
 const BORDER_DASHED    = 'dashed';
 const BORDER_DOTTED    = 'dotted';
 const BORDER_DOUBLE    = 'double';
 const BORDER_HAIR    = 'hair';
 const BORDER_MEDIUM    = 'medium';
 const BORDER_MEDIUMDASHDOT  = 'mediumDashDot';
 const BORDER_MEDIUMDASHDOTDOT = 'mediumDashDotDot';
 const BORDER_MEDIUMDASHED  = 'mediumDashed';
 const BORDER_SLANTDASHDOT  = 'slantDashDot';
 const BORDER_THICK    = 'thick';
 const BORDER_THIN    = 'thin';

最好用的MYSQL密碼忘記的解決方法

相信大家都一定會遇到安裝好Web Server後,設定錯誤,或者忘記MYSQL密碼。
筆者在此分享一下之前收集的筆記。

php excel类,phpExcel使用方法介绍

下面是总结的几个使用方法
  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’);
  ——————————————————————————————————————–
  设置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′);

phpExcel常用方法詳解【附有php導出excel加超級鏈接】

操作excel


1.header

        header("Content-Type:application/vnd.ms-excel");
        header("Content-Disposition:attachment;filename=product.xls");
        header("Pragma:no-cache");
        header("Expires:0");


2.PHPExcel

        http://www.codeplex.com/PHPExcel
        http://www.phpexcel.net

        开发包Tests目录有详细使用实例
        支持中文,注意文件编码,文件保存为utf-8

        写excel

                //Include class
                require_once('Classes/PHPExcel.php');
                require_once('Classes/PHPExcel/Writer/Excel2007.php');
                $objPHPExcel = new PHPExcel();

                //Set properties 设置文件属性
                $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");

                //Add some data 添加数据
                $objPHPExcel->setActiveSheetIndex(0);
                $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Hello');//可以指定位置
                $objPHPExcel->getActiveSheet()->setCellValue('A2', true);
                $objPHPExcel->getActiveSheet()->setCellValue('A3', false);
                $objPHPExcel->getActiveSheet()->setCellValue('B2', 'world!');
                $objPHPExcel->getActiveSheet()->setCellValue('B3', 2);
                $objPHPExcel->getActiveSheet()->setCellValue('C1', 'Hello');
                $objPHPExcel->getActiveSheet()->setCellValue('D2', 'world!');
                //循环
                for($i = 1;$i<200;$i++) {
                    $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, $i);
                    $objPHPExcel->getActiveSheet()->setCellValue('B' . $i, 'Test value');
                }
                //日期格式化
                $objPHPExcel->getActiveSheet()->setCellValue('D1', time());
                $objPHPExcel->getActiveSheet()->getStyle('D1')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDDSLASH);

                //Add comment 添加注释
                $objPHPExcel->getActiveSheet()->getComment('E11')->setAuthor('PHPExcel');
                $objCommentRichText = $objPHPExcel->getActiveSheet()->getComment('E11')->getText()->createTextRun('PHPExcel:');
                $objCommentRichText->getFont()->setBold(true);
                $objPHPExcel->getActiveSheet()->getComment('E11')->getText()->createTextRun("\r\n");
                $objPHPExcel->getActiveSheet()->getComment('E11')->getText()->createTextRun('Total amount on the current invoice, excluding VAT.');

                //Add rich-text string 添加文字 可设置样式
                $objRichText = new PHPExcel_RichText( $objPHPExcel->getActiveSheet()->getCell('A18') );
                $objRichText->createText('This invoice is ');
                $objPayable = $objRichText->createTextRun('payable within thirty days after the end of the month');
                $objPayable->getFont()->setBold(true);
                $objPayable->getFont()->setItalic(true);
                $objPayable->getFont()->setColor( new PHPExcel_Style_Color( PHPExcel_Style_Color::COLOR_DARKGREEN ) );
                $objRichText->createText(', unless specified otherwise on the invoice.');

                //Merge cells 合并分离单元格
                $objPHPExcel->getActiveSheet()->mergeCells('A18:E22');
                $objPHPExcel->getActiveSheet()->unmergeCells('A18:E22');

                //Protect cells 保护单元格
                $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 数字格式化
                $objPHPExcel->getActiveSheet()->getStyle('E4')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE);
                $objPHPExcel->getActiveSheet()->duplicateStyle( $objPHPExcel->getActiveSheet()->getStyle('E4'), 'E5:E13' );

                //Set column widths 设置列宽度
                $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
                $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(12);

                //Set fonts 设置字体
                $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);

                //Set alignments 设置对齐
                $objPHPExcel->getActiveSheet()->getStyle('D11')->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);
                $objPHPExcel->getActiveSheet()->getStyle('A3')->getAlignment()->setWrapText(true);

                //Set column borders 设置列边框
                $objPHPExcel->getActiveSheet()->getStyle('A4')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
                $objPHPExcel->getActiveSheet()->getStyle('A10')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
                $objPHPExcel->getActiveSheet()->getStyle('E10')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
                $objPHPExcel->getActiveSheet()->getStyle('D13')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THICK);
                $objPHPExcel->getActiveSheet()->getStyle('E13')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THICK);

                //Set border colors 设置边框颜色
                $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()->getRight()->getColor()->setARGB('FF993300');

                //Set fills 设置填充
                $objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
                $objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->setARGB('FF808080');

                //Add a hyperlink to the sheet 添加链接
                $objPHPExcel->getActiveSheet()->setCellValue('E26', 'www.phpexcel.net');
                $objPHPExcel->getActiveSheet()->getCell('E26')->getHyperlink()->setUrl('http://www.phpexcel.net');
                $objPHPExcel->getActiveSheet()->getCell('E26')->getHyperlink()->setTooltip('Navigate to website');
                $objPHPExcel->getActiveSheet()->getStyle('E26')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);

                //Add a drawing to the worksheet 添加图片
                $objDrawing = new PHPExcel_Worksheet_Drawing();
                $objDrawing->setName('Logo');
                $objDrawing->setDescription('Logo');
                $objDrawing->setPath('./images/officelogo.jpg');
                $objDrawing->setHeight(36);
                $objDrawing->setCoordinates('B15');
                $objDrawing->setOffsetX(110);
                $objDrawing->setRotation(25);
                $objDrawing->getShadow()->setVisible(true);
                $objDrawing->getShadow()->setDirection(45);
                $objDrawing->setWorksheet($objPHPExcel->getActiveSheet());

                //Play around with inserting and removing rows and columns
                $objPHPExcel->getActiveSheet()->insertNewRowBefore(6, 10);
                $objPHPExcel->getActiveSheet()->removeRow(6, 10);
                $objPHPExcel->getActiveSheet()->insertNewColumnBefore('E', 5);
                $objPHPExcel->getActiveSheet()->removeColumn('E', 5);

                //Add conditional formatting
                $objConditional1 = new PHPExcel_Style_Conditional();
                $objConditional1->setConditionType(PHPExcel_Style_Conditional::CONDITION_CELLIS);
                $objConditional1->setOperatorType(PHPExcel_Style_Conditional::OPERATOR_LESSTHAN);
                $objConditional1->setCondition('0');
                $objConditional1->getStyle()->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_RED);
                $objConditional1->getStyle()->getFont()->setBold(true);

                //Set autofilter 自动过滤
                $objPHPExcel->getActiveSheet()->setAutoFilter('A1:C9');

                //Hide "Phone" and "fax" column 隐藏列
                $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setVisible(false);
                $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setVisible(false);

                //Set document security 设置文档安全
                $objPHPExcel->getSecurity()->setLockWindows(true);
                $objPHPExcel->getSecurity()->setLockStructure(true);
                $objPHPExcel->getSecurity()->setWorkbookPassword("PHPExcel");

                //Set sheet security 设置工作表安全
                $objPHPExcel->getActiveSheet()->getProtection()->setPassword('PHPExcel');
                $objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);// This should be enabled in order to enable any of the following!
                $objPHPExcel->getActiveSheet()->getProtection()->setSort(true);
                $objPHPExcel->getActiveSheet()->getProtection()->setInsertRows(true);
                $objPHPExcel->getActiveSheet()->getProtection()->setFormatCells(true);

                //Calculated data 计算
                echo 'Value of B14 [=COUNT(B2:B12)]: ' . $objPHPExcel->getActiveSheet()->getCell('B14')->getCalculatedValue() . "\r\n";

                //Set outline levels
                $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setOutlineLevel(1);
                $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setVisible(false);
                $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setCollapsed(true);

                //Freeze panes
                $objPHPExcel->getActiveSheet()->freezePane('A2');

                //Rows to repeat at top
                $objPHPExcel->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 1);

                //Set data validation 验证输入值
                $objValidation = $objPHPExcel->getActiveSheet()->getCell('B3')->getDataValidation();
                $objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_WHOLE );
                $objValidation->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_STOP );
                $objValidation->setAllowBlank(true);
                $objValidation->setShowInputMessage(true);
                $objValidation->setShowErrorMessage(true);
                $objValidation->setErrorTitle('Input error');
                $objValidation->setError('Number is not allowed!');
                $objValidation->setPromptTitle('Allowed input');
                $objValidation->setPrompt('Only numbers between 10 and 20 are allowed.');
                $objValidation->setFormula1(10);
                $objValidation->setFormula2(20);
                $objPHPExcel->getActiveSheet()->getCell('B3')->setDataValidation($objValidation);

                //Create a new worksheet, after the default sheet 创建新的工作标签
                $objPHPExcel->createSheet();
                $objPHPExcel->setActiveSheetIndex(1);

                //Set header and footer. When no different headers for odd/even are used, odd header is assumed. 页眉页脚
                $objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddHeader('&C&HPlease treat this document as confidential!');
                $objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddFooter('&L&B' . $objPHPExcel->getProperties()->getTitle() . '&RPage &P of &N');

                //Set page orientation and size 方向大小
                $objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);
                $objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);

                //Rename sheet 重命名工作表标签
                $objPHPExcel->getActiveSheet()->setTitle('Simple');

                //Set active sheet index to the first sheet, so Excel opens this as the first sheet
                $objPHPExcel->setActiveSheetIndex(0);

                //Save Excel 2007 file 保存
                $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
                $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
  
                //Save Excel 5 file 保存
                require_once('Classes/PHPExcel/Writer/Excel5.php');
                $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);
                $objWriter->save(str_replace('.php', '.xls', __FILE__));

                //1.6.2新版保存
                require_once('Classes/PHPExcel/IOFactory.php');
                $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
                $objWriter->save(str_replace('.php', '.xls', __FILE__));


        读excel
                //Include class
                require_once('Classes/PHPExcel/Reader/Excel2007.php');
                $objReader = new PHPExcel_Reader_Excel2007;

                $objPHPExcel = $objReader->load("05featuredemo.xlsx");


        读写csv
      
                require_once("05featuredemo.inc.php");
                require_once('Classes/PHPExcel/Writer/CSV.php');
                require_once('Classes/PHPExcel/Reader/CSV.php');
                require_once('Classes/PHPExcel/Writer/Excel2007.php');

                //Write to CSV format 写
                $objWriter = new PHPExcel_Writer_CSV($objPHPExcel);
                $objWriter->setDelimiter(';');
                $objWriter->setEnclosure('');
                $objWriter->setLineEnding("\r\n");
                $objWriter->setSheetIndex(0);
                $objWriter->save(str_replace('.php', '.csv', __FILE__));

                //Read from CSV format 读
                $objReader = new PHPExcel_Reader_CSV();
                $objReader->setDelimiter(';');
                $objReader->setEnclosure('');
                $objReader->setLineEnding("\r\n");
                $objReader->setSheetIndex(0);
                $objPHPExcelFromCSV = $objReader->load(str_replace('.php', '.csv', __FILE__));

                //Write to Excel2007 format
                $objWriter2007 = new PHPExcel_Writer_Excel2007($objPHPExcelFromCSV);
                $objWriter2007->save(str_replace('.php', '.xlsx', __FILE__));


        写html

                require_once("05featuredemo.inc.php");
                require_once('Classes/PHPExcel/Writer/HTML.php');

                //Write to HTML format
                $objWriter = new PHPExcel_Writer_HTML($objPHPExcel);
                $objWriter->setSheetIndex(0);
                $objWriter->save(str_replace('.php', '.htm', __FILE__));


        写pdf

                require_once("05featuredemo.inc.php");
                require_once('Classes/PHPExcel/IOFactory.php');

                //Write to PDF format
                $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
                $objWriter->setSheetIndex(0);
                $objWriter->save(str_replace('.php', '.pdf', __FILE__));
                //Echo memory peak usage
                echo date('H:i:s') . " Peak memory usage: " . (memory_get_peak_usage(true) / 1024 / 1024) . " MB\r\n";

http://hi.baidu.com/%C1%B5%C4%E3no%C1%BD%C8%FD%CC%EC/blog/item/79a4dbc46f090ac5d10060d9.html

Windows 防火牆 造成 Ping 無回應

控制台->Windows防火牆->進階->ICMP->設定值->允許傳入的回應要求(打勾)

總結PHPExcel的用法

總結一下PHPExcel的用法~ <?
//設置PHPExcel類庫的include path//這裡貌似直接include類文件就可以了
# set_include_path('.'. PATH_SEPARATOR .
# 'ExcelPHP_LIBS' . PATH_SEPARATOR .
# get_include_path());
/**
* 以下是使用示例,對於以//// 開頭的行是不同的可選方式,請根據實際需要
* 打開對應行的註釋。
* 如果使用Excel5 ,輸出的內容應該是GBK編碼。
*/
require_once 'PHPExcel.php';
// uncomment
////require_once 'PHPExcel/Writer/Excel5.php';// 用於其他低版本xls
// or
////require_once 'PHPExcel/Writer/Excel2007.php'; // 用於excel-2007 格式
// 創建一個處理對象實例
$objExcel = new PHPExcel();
// 創建文件格式寫入對象實例, uncomment
////$objWriter = new PHPExcel_Writer_Excel5($objExcel);// 用於其他版本格式
// or
////$objWriter = new PHPExcel_Writer_Excel2007($objExcel); // 用於2007 格式
//$objWriter->setOffice2003Compatibility(true);//實際使用中並無此方法,去掉之後使用正常。可能是版本問題。
//*************************************
//設置文檔基本屬性
$objProps = $objExcel->getProperties();
$objProps->setCreator("Zeal Li");
$objProps->setLastModifiedBy("Zeal Li");
$objProps->setTitle("Office XLS Test Document");
$objProps->setSubject("Office XLS Test Document, Demo");
$objProps->setDescription("Test document, generated by PHPExcel.");
$objProps->setKeywords("office excel PHPExcel");
$objProps->setCategory("Test");
//*************************************
//設置當前的sheet索引,用於後續的內容操作。
//一般只有在使用多個sheet的時候才需要顯示調用。
//缺省情況下,PHPExcel會自動創建第一個sheet被設置SheetIndex=0
$objExcel->setActiveSheetIndex(0);

$objActSheet = $objExcel->getActiveSheet();
//設置當前活動sheet的名稱
$objActSheet->setTitle('測試Sheet');
//*************************************
//設置單元格內容
//
//由PHPExcel根據傳入內容自動判斷單元格內容類型
$objActSheet->setCellValue('A1', '字符串內容');// 字符串內容
$objActSheet->setCellValue('A2', 26);// 數值
$objActSheet->setCellValue('A3', true);// 布爾值
$objActSheet->setCellValue('A4', '=SUM(A2:A2)'); // 公式
//顯式指定內容類型
$objActSheet->setCellValueExplicit('A5', '847475847857487584', PHPExcel_Cell_DataType::TYPE_STRING);//實際使用中這里報錯,是說沒有PHPExcel_Cell_DataType方法,去掉之後運行正常
//合併單元格
$objActSheet->mergeCells('B1:C22');
//分離單元格
$objActSheet->unmergeCells('B1:C22');
//*************************************
//設置單元格樣式
//
//設置寬度
$objActSheet->getColumnDimension('B')->setAutoSize(true);//這個比較有用,能自適應列寬
$objActSheet->getColumnDimension('A')->setWidth(30);
$objStyleA5 = $objActSheet->getStyle('A5');
//設置單元格內容的數字格式。
//
//如果使用了PHPExcel_Writer_Excel5 來生成內容的話,
//這裡需要注意,在PHPExcel_Style_NumberFormat 類的const 變量定義的
//各種自定義格式化方式中,其它類型都可以正常使用,但當setFormatCode
//為FORMAT_NUMBER 的時候,實際出來的效果被沒有把格式設置為"0"。需要
//修改PHPExcel_Writer_Excel5_Format 類源代碼中的getXf($style) 方法,
//在if ($this->_BIFF_version == 0x0500) { (第363行附近)前面增加一
//行代碼:
//if($ifmt === '0') $ifmt = 1;
//
//設置格式為PHPExcel_Style_NumberFormat::FORMAT_NUMBER,避免某些大數字
//被使用科學記數方式顯示,配合下面的setAutoSize 方法可以讓每一行的內容
//都按原始內容全部顯示出來。
$objStyleA5
&&&&->getNumberFormat()
&&&&->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER);
//設置字體
$objFontA5 = $objStyleA5->getFont();
$objFontA5->setName('Courier New');
$objFontA5->setSize(10);
$objFontA5->setBold(true);
$objFontA5->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);
$objFontA5->getColor()->setARGB('FF999999');
//設置對齊方式
$objAlignA5 = $objStyleA5->getAlignment();
$objAlignA5-​​>setHorizo​​ntal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
$objAlignA5-​​>setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
//設置邊框
$objBorderA5 = $objStyleA5->getBorders();
$objBorderA5->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objBorderA5->getTop()->getColor()->setARGB('FFFF0000'); // color
$objBorderA5->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objBorderA5->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objBorderA5->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
//設置填充顏色
$objFillA5 = $objStyleA5->getFill();
$objFillA5->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$objFillA5->getStartColor()->setARGB('FFEEEEEE');
//從指定的單元格複製樣式信息.
$objActSheet->duplicateStyle($objStyleA5, 'B1:C22');

//*************************************
//添加圖片
$objDrawing = new PHPExcel_Worksheet_Drawing();
$objDrawing->setName('ZealImg');
$objDrawing->setDescription('Image inserted by Zeal');
$objDrawing->setPath('./zeali.net.logo.gif');
$objDrawing->setHeight(36);
$objDrawing->setCoordinates('C23');
$objDrawing->setOffsetX(10);
$objDrawing->setRotation(15);
$objDrawing->getShadow()->setVisible(true);
$objDrawing->getShadow()->setDirection(36);
$objDrawing->setWorksheet($objActSheet);

//添加一個新的worksheet
$objExcel->createSheet();
$objExcel->getSheet(1)->setTitle('測試2');
//保護單元格
$objExcel->getSheet(1)->getProtection()->setSheet(true);
$objExcel->getSheet(1)->protectCells('A1:C22', 'PHPExcel');

//*************************************
//輸出內容
//
$outputFileName = "output.xls";
//到文件
////$objWriter->save($outputFileName);
//or
//到瀏覽器
////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 MYH:i:s") . " GMT");
////header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
////header("Pragma: no-cache");
////$objWriter->save('php://output');
?>
PS.PHP果然是個好東西~~什麼包都有~~
文章來源:
http://www.5kai.com/post/359/
http://blog.chinaunix.net/u/13284/showart_1071984.html
另:header的用法:http://zhidao.baidu.com/question/8681288.html?si=2
       header中各文件類型的表示方法:http://hi.baidu.com/phpyao/blog/item/d4ab4ab11e27ca52092302d4.html
       PHP導出EXCEL的不完全總結:http://hi.baidu.com/jricode/blog/item/165a66245cfd023b8744f9bb.htmlChūntiān jiùshì ràng rén chōngmǎn huólì ~yīgè xiàwǔ gǎo dìng liǎo bù shǎo shìqíng.

使用PHPExcel導入Excel

PHPExcel 官方網站: http://www.codeplex.com/PHPExcel
運行環境:
» PHP version 5.2.0 或更高
» PHP extension php_zip 支持 *)
» PHP extension php_xml 支持
» PHP extension php_gd2 支持
*) php_zip 是被PHPExcel_Reader_Excel2007,PHPExcel_Writer_Excel2007 和PHPExcel_Reader_OOCalc所使用。換句話說,如果你需要使用PHPExcel 去處理.xlsx 或者.ods 後綴的文件時,就需要zip 擴展的支持,否則就不需要。
安裝簡介:
安裝過程相當簡單: 把下載到文件中的Classes 文件夾複製你程序中需要使用的地方。
例如:
假如你的網站目錄是/var/www/ 你可​​以時面新建一個文件夾如/var/www/Classes/ 然後將文件複製進去就可以了,文件的名字如下面的:
/var/www/Classes/PHPExcel.php
/var/www/Classes/PHPExcel/Calculation.php
/var/www/Classes/PHPExcel/Cell.php

原文:http://www.vipaq.com/Detail/view/item/90.html

使用phpExcel類導出excel文件相關問題總結

用phpExcel類導出excel文件相關問題總結

                      
Autor:霍小慶time:2011-04-22



總結一下最近使用phpexcel類導出excel 文件時遇到的問題,主要包括三大類:

  
1.導​​出時提示找不到文件怎麼辦?

  
2.導出excel時中文出現亂碼的問題。

  
3.導出數據量大時,提示內存超過最大值或者運行時間超時的問題。


先看下phpexcel常用的方法總結(摘錄自zeal_blog:http://www.zeali.net/entry/556)

<?
/**

 
* 如果使用Excel5 ,輸出的內容應該是GBK編碼。

 
*/
require_once 'PHPExcel.php';
//require_once 'PHPExcel/Writer/Excel5.php'; // 用於其他低版本xls
//require_once 'PHPExcel/Writer/Excel2007.php'; // 用於excel-2007 格式
// 創建一個處理對象實例
$table = new PHPExcel();
//設置文檔基本屬性
$table = $table->getProperties();
$table->setCreator("username");
$table->setLastModifiedBy("username");
$table->setTitle("document_title");
$table->setSubject("");
$table->setDescription("Test document, generated by PHPExcel.");
$table->setKeywords("office excel PHPExcel");
$table->setCategory("Test");
//設置當前的sheet索引,用於後續的內容操作。
//一般只有在使用多個sheet的時候才需要顯示調用。
//缺省情況下,PHPExcel會自動創建第一個sheet被設置SheetIndex=0
$table->setActiveSheetIndex(0);
//設置當前活動sheet的名稱
$table->setActiveSheetIndex(0)->setTitle('test_title');
$ohjActSheet=$table->setActiveSheetIndex(0);

//設置單元格內容
//由PHPExcel根據傳入內容自動判斷單元格內容類型
$objActSheet->setCellValue('A1', '字符串內容'); // 字符串內容
$objActSheet->setCellValue('A2', 26); // 數值
$objActSheet->setCellValue('A3', true); // 布爾值
$objActSheet->setCellValue('A4', '=SUM(A2:A2)'); // 公式
//顯式指定內容類型
$objActSheet->setCellValueExplicit('A5', '847475847857487584',

 
PHPExcel_Cell_DataType::TYPE_STRING);
//合併單元格
$objActSheet->mergeCells('B1:C22');
//分離單元格
$objActSheet->unmergeCells('B1:C22');
//設置單元格樣式
$objActSheet->getColumnDimension('B')->setAutoSize(true);
$objActSheet->getColumnDimension('A')->setWidth(30);
$objStyleA5 = $objActSheet->getStyle('A5');


//設置字體
$objFontA5 = $objStyleA5->getFont();
$objFontA5->setName('Courier New');
$objFontA5->setSize(10);
$objFontA5->setBold(true);
$objFontA5->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);
$objFontA5->getColor()->setARGB('FF999999');
//設置對齊方式
$objAlignA5 = $objStyleA5->getAlignment();
$objAlignA5-​​>setHorizo​​ntal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); //水平
$objAlignA5-​​>setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); //垂直
//設置邊框
$objBorderA5 = $objStyleA5->getBorders();
$objBorderA5->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objBorderA5->getTop()->getColor()->setARGB('FFFF0000'); // color
$objBorderA5->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objBorderA5->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objBorderA5->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
//設置填充顏色
$objFillA5 = $objStyleA5->getFill();
$objFillA5->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$objFillA5->getStartColor()->setARGB('FFEEEEEE');
//從指定的單元格複製樣式信息.
$objActSheet->duplicateStyle($objStyleA5, 'B1:C22');
//添加圖片
$objDrawing = new PHPExcel_Worksheet_Drawing();
$objDrawing->setName('ZealImg');
$objDrawing->setDescription('Image inserted by Zeal');
$objDrawing->setPath('./zeali.net.logo.gif');
$objDrawing->setHeight(36);
$objDrawing->setCoordinates('C23');
$objDrawing->setOffsetX(10);
$objDrawing->setRotation(15);
$objDrawing->getShadow()->setVisible(true);
$objDrawing->getShadow()->setDirection(36);
$objDrawing->setWorksheet($objActSheet);
//添加一個新的worksheet
$table->createSheet();
$table->getSheet(1)->setTitle('測試2');
//保護單元格
$table->getSheet(1)->getProtection()->setSheet(true);
$table->getSheet(1)->protectCells('A1:C22', 'PHPExcel');
//輸出內容
$outputFileName = "output.xls";
//到文件
//$objWriter->save($outputFileName);
//or
//到瀏覽器
//header("Content-Type: application/octet-stream");
//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 MYH:i:s") . " GMT");
//header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
//header("Pragma: no-cache");
//$objWriter->save('php://output');
?>
使用時常見的問題總結:
1.關於提示找不到文件的問題:
原因可能有:緩衝區沒有打開或者mb_overlod_func函數沒有關閉,解決這個問題的最好辦法是把php.ini中display_errors打開,下載文件,打開後會提示相應錯誤信息。若是後者,則需要打開php.ini文件,找到mbsrtring.func_overload=7將其隱掉。
若能正常導出excel但是沒有數據,則一般是程序錯誤(沒有取到數據或數據沒賦值)
2.導出excel時出現亂碼的問題,這個問題網上的答案很多。主要的解決方案有:

  
(1).亂碼原因:客戶使用的中文版Windows系統平台,而Windows平台的文件名編碼為gb2312(gbk),而我們網頁編碼為了跟進現存潮流一般都採用utf-8(國際化)編碼,這時當我們:header("Content-Disposition: inline; filename=\"" . $filename . ".xls-:special:1:-")時就會出現亂碼,假如你的網頁編碼就是gb2312那就不用考慮編碼問題了(否則轉碼了反而會出現亂碼)。

  
解決辦法:對$filename轉碼,執行:iconv('utf-8", "gb2312", $filename)。假如你的環境不支持iconv函數可以換別的函數,只要能將$filename的編碼轉為gbk就行。
(2):輸出文件的時候加上相應的頭信息:
Header('content-Type:application/vnd.ms-excel;charset=utf-8');
(3).如果以上方法還是出現亂碼,則可能是輸出緩衝區中有其他多餘的內容,在php文件中設置excel內容之間清理一下輸出緩衝區吧:<? php ob_clean();? >
以上三步基本可以涵蓋到多數excel亂碼的問題。
3.導出大數據時提示錯誤
打開php.ini文件中的display_errors,查看具體錯誤信息:一般情況下有兩類:
(1).runtime 超過了maxium time,這個時候可能的原因是文件中出現了死循環或者大循環。檢查源碼看是否有死循環。建議不要在循環體中設置excel格式,佔據的時間超多。經初步測試,在循環體中設置3-4個格式,則大約1500條數據時就會出現運行超時的問題。因此盡量把設置格式的代碼放置到循環體外。
(2).memory size of ....bytes exhausted這是典型的內存不夠用的情況。如可以修改php.ini文件則找到memory_limit = 32M將其改為memory_limit = 64M或者更大128M.如是遠程不能修改php.ini文件,則需要在代碼中修改:@ini_set('memory_limit','64M' );

在使用PHPExcel導出Excel時出現的幾個錯誤的解決辦法

 PHPExcel是PHP中功能最強大的導入、導出、操作Microsoft Excel的開源項目。但是它體系複雜,有時會讓人難以掌控。
由於Microsoft Office是商業軟件,因此在Office2003及之前的版本,微軟的文檔格式是不公開的。這導致別的Office辦公軟件處於極其被動的地位,因為他們再怎麼努力,也很難完全兼容被普遍使用的Microsoft Office Word、Microsoft Office PowerPoint、Microsoft Office Excel等軟件。在Microsoft Office 2007版推出以後,微軟採用了XML作為這些文檔的底層存儲方式,並且努力推廣Office2007所採用Open Office XML(OOXML)成為國際文檔格式標準。雖然中國投了反對票,但是最終在今年4月初,ISO通過快速通道投票確認微軟提出的OOXML因大多數成員認可而成為國際文檔格式標準。
但是,OOXML文檔格式標準“規格極其複雜,設計完全落伍”(“中國自由軟件界元老”之稱的宮敏博士之語),仍然很難被其它軟件所掌控。從這個意義上來說,PHPExcel真的是一款非常牛的開源軟件了。它能夠從PHP中導出各種版本的Excel文檔(包括Excel2007格式的文檔),並且支持一定程度的複雜格式。
不過言歸正傳,由於PHPExcel為了去產生Microsoft Office的文檔,因此可能在導出Excel的時候會出一些奇怪的錯誤。如果你發現使用PHPExcel導出的Excel表無法用MS Excel打開,可以嘗試使用文本文檔或者是EditPlus打開導出的Excel文件,看看是否有提示何種錯誤。以下是兩種錯誤的解決辦法:
(1)Fatal error: Maximum execution time of 30 seconds exceeded解決錯誤方法
需要修改php.ini文件,如果是使用Ubuntu 9.04 Server的服務器,可以在/etc/php5/apache2/下找到php.ini文件,如果是Freebsd,可以在/usr/local/lib/下找到php.ini文件。使用sudo權限編輯下面的語句:
將如下語句:
max_execution_time = 30
修改為:
max_execution_time = 300
也就是將PHP腳本最長執行時間從30秒延長到300秒。
然後重啟一下Apache服務器,如果是Ubuntu Server的服務器,可以使用如下命令:
sudo /etc/init.d/apache2 restart
(2)Fatal error: Allowed memory size of 16777216 bytes exhausted 的解決辦法
一樣地需要修改php.ini文件:
將如下語句:
memory_limit = 16M
修改為:
memory_limit = 512M
也就是將PHP腳本所能夠申請的內存從16M擴大到512M。具體數字可以根據自己的需要確定。
一樣需要重啟Apache服務器。
需要注意的是:
(1)以上的修改可能存在一定風險,例如給​​服務器造成過大的負擔。所以請再三確認是否有必要給PHPExcel或者是其他PHP程序開放更大的內存空間以及更長的執行時間。
(2)修改完php.ini之後,只有重啟Apache之後,新的設置才會生效。
(3)php.ini中的設置,請根據自己服務器的情況量力而行。

Fatal error: Class 'ZipArchive' not found的解決辦法

Fatal error: Class 'ZipArchive' not found的解決辦法
出現這個錯誤說明是程序在調用'ZipArchive' 這個類的時候沒有成功,原因是由於在安裝php的時候沒有增加php zip的支持(非zlib)。
在Windows下的解決辦法是:
1、在p​​hp.ini文件中,將extension=php_zip.dll前面的分號“;”去除;
(如果沒有,請添加extension=php_zip.dll此行並確保php_zip.dll文件存在相應的目錄)
然後同樣在php.ini文件中,將zlib.output_compression = Off 改為zlib.output_compression = On ;
2、重啟Apache服務器。
在Unix/Linux下的解決辦法:
1、在Linux下沒有php_zip.dll這個文件(有也不會起作用的),所以需要重新編譯一下php的zip模塊。具體安裝方法如下:
cd /usr/src
wget http://pecl.php.net/get/zip
tar -zxvf zip
cd zip-1.x.x
phpize
./configure
make
sudo make instal
其中, 在最後使用make install命令的時候,可能需要用到root的權限,所以建議使用sudo來運行。安裝完之後,屏幕上會提示zip.so的位置。然後將其記錄下來,如:/usr/local/lib/php/extensions/zip.so。
2、使用root權限修改php.ini(通常可能會在/usr/local/lib/文件夾下,不過視當初安裝php而定,可以通過phpinfo()來查看):
增加extension = /usr/local/lib/php/extensions/zip.so,然後同樣在php.ini文件中,將zlib.output_compression = Off 改為zlib.output_compression = On ;
3、最後別忘了重啟一下Apache:apachectl restart;
這個針對php的zip模塊就安裝完成了,能夠在php中使用ZipArchive類了

對onreadystatechange屬性的理解

在編寫Ajax方法的時候,我們經常會寫上類似於這樣的代碼:




XMLHTTPRequest的屬性和方法

由於現在在公司負責製作標準的靜態頁面,為了增強客戶體驗,所以經常要做些AJAX效果,也學你也和我一樣在,學習AJAX。而設計AJAX時使用的一個重要的技術(工具)就是XMLHTTPRequest對象了。這里海嘯把我學習XMLHTTPRequest對象的一點資料拿出來跟大家一起分享。文中的資料都是海嘯在學習時在網上收集的,如果您看過,那就再加深下印象吧!

JavaScript 背景及特色

JavaScript 早期是由 Netscape Communications 公司所開發的一種解譯式程式語言,專門用在網頁中,並在用戶端的電腦執行,以提高網頁的互動性為主要目標。早期的瀏覽器,例如 Netscape,也只有支援 JavaScript 為主要的客戶端網頁程式語言。而近期的微軟瀏覽器 IE,則可以支援兩種程式語言,包含 JavaScript 和 VBScript,但是 JavaScript 還是網頁內訂預設的客戶端程式語言。因此只有 JavaScript 能夠同時適用於各大瀏覽器,如 IE、FireFox 和 Chrome 等。

如何成為AJAX高手

提起javascript,很多程序員都覺得不屑一顧,總是認為他很低級.假如在C/S產品開發模式下,JS的確沒什麼大的用處.可是在GOOGLE一夜間將地圖搜索推出後,這個世界就起了些微妙的變化,直到今年除夕,微軟偷偷將LIVE上線,接著將LIVE的產品級別提到和旗艦產品WINDOWS一樣高時,javascript終於發威了.