亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? excelparser.php

?? Excel->MySQL 解決UNIX下使用Excel數據的困難。
?? PHP
?? 第 1 頁 / 共 3 頁
字號:
/*DBG*/		    $this->dbglog->debug("Parsed BIFF version is 8");
				$biff_ver = 8;
				break;
			default:
				return 8;
		 }
		}

		if( $biff_ver < 5 ) {
/*DBG*/  $this->dbglog->debug("parse_worksheet() function found ($biff_ver < 5) return 8");
		  return 8;
		}
		$ptr = 0;
		$data = array('biff_version' => $biff_ver );

		while( (ord($ws[$ptr])!=0x0a) && ($ptr<strlen($ws)) ) {
					 
		 switch (ord($ws[$ptr])+256*ord($ws[$ptr+1])) {
			
		 
		  // Formula
		  // Number
		  
		  case 0x0203:
		  case 0x0006:
		  case 0x0206:
		  case 0x0406:
		  
/*DBG*/     $this->dbglog->trace("found NUMBER");

			if( ($biff_ver < 3) ){
/*DBG*/         $this->dbglog->trace("$biff_ver < 3 break;");
			    break;
			}
			if( (ord($ws[$ptr+2])+256*ord($ws[$ptr+3])) < 14 ){
/*DBG*/         $this->dbglog->debug("parse_worksheet() return 6");
				return 6;
			}

			$row = ord($ws[$ptr+4])+256*ord($ws[$ptr+5]);
			$col = ord($ws[$ptr+6])+256*ord($ws[$ptr+7]);
			$num_lo = ExcelParserUtil::str2long(substr($ws,$ptr+10,4));
			$num_hi = ExcelParserUtil::str2long(substr($ws,$ptr+14,4));
			$xf_i = ord($ws[$ptr+8])+256*ord($ws[$ptr+9]);

			if($this->isDateFormat($xf_i)){
				$data['cell'][$row][$col]['type'] = 3;
			} else {
				$data['cell'][$row][$col]['type'] = 2;
			}

			$fonti = $this->xf['font'][$xf_i];
		    	$data['cell'][$row][$fc+$i]['font'] = $fonti;

			$fexp = (($num_hi & 0x7ff00000) >> 20) - 1023;
			$val = 1+(($num_hi & 0x000fffff)+$num_lo/4294967296)/1048576;

			if( $fexp > 0 ) {
				for( $i=0; $i<$fexp; $i++ )
					$val *= 2;
			} else {
				for( $i=0; $i<abs($fexp); $i++ )
					$val /= 2;
			}
			if( $num_hi & 0x80000000 ) $val = -$val;

			$data['cell'][$row][$col]['data'] = (float)$val;

			if( !isset($data['max_row']) ||
			    ($data['max_row'] < $row) )
				$data['max_row'] = $row;

			if( !isset($data['max_col']) ||
			    ($data['max_col'] < $col) )
				$data['max_col'] = $col;

			break;

		  // RK
		  case 0x027e:
/*DBG*/  $this->dbglog->trace("found RK");
			if( ($biff_ver < 3) ) break;
			if( (ord($ws[$ptr+2])+256*ord($ws[$ptr+3])) < 0x0a )
				return 6;
			$row  = ord($ws[$ptr+4])+256*ord($ws[$ptr+5]);
			$col  = ord($ws[$ptr+6])+256*ord($ws[$ptr+7]);
			$xf_i = ord($ws[$ptr+8])+256*ord($ws[$ptr+9]);
			$val  = $this->rk_decode(
					ExcelParserUtil::str2long(substr($ws,$ptr+10,4))
				);

			if($this->isDateFormat($xf_i)==TRUE){
				$data['cell'][$row][$col]['type'] = 3;
			} else {
				$data['cell'][$row][$col]['type'] = $val['type'];
			}
			$fonti = $this->xf['font'][$xf_i];

		    $data['cell'][$row][$col]['font'] = $fonti;
			$data['cell'][$row][$col]['data'] = $val['val'];


			if( !isset($data['max_row']) ||
			    ($data['max_row'] < $row) )
				$data['max_row'] = $row;

			if( !isset($data['max_col']) ||
			    ($data['max_col'] < $col) )
				$data['max_col'] = $col;

			break;

		  // MULRK
		  case 0x00bd:
/*DBG*/  $this->dbglog->trace("found  MULL RK");
			if( ($biff_ver < 5) ) break;
			$sz = ord($ws[$ptr+2])+256*ord($ws[$ptr+3]);
			if( $sz < 6 ) return 6;

			$row = ord($ws[$ptr+4])+256*ord($ws[$ptr+5]);
			$fc = ord($ws[$ptr+6])+256*ord($ws[$ptr+7]);
			$lc = ord($ws[$ptr+$sz+2])+256*ord($ws[$ptr+$sz+3]);

			for( $i=0; $i<=$lc-$fc; $i++) {
			 $val = $this->rk_decode(
				ExcelParserUtil::str2long(substr($ws,$ptr+10+$i*6,4))
				);

			   $xf_i=ord($ws[$ptr+8+$i*6])+256*ord($ws[($ptr+9+$i*6)]);
			   if($this->isDateFormat($xf_i)==TRUE) {
			   	$data['cell'][$row][$fc+$i]['type'] = 3;
			   } else {
			   	$data['cell'][$row][$fc+$i]['type'] = $val['type'];
			   }
			   $fonti = $this->xf['font'][$xf_i];
		       $data['cell'][$row][$fc+$i]['font'] = $fonti;
			   $data['cell'][$row][$fc+$i]['data'] = $val['val'];
			}

			if( !isset($data['max_row']) ||
			    ($data['max_row'] < $row) )
				$data['max_row'] = $row;

			if( !isset($data['max_col']) ||
			    ($data['max_col'] < $lc) )
				$data['max_col'] = $lc;

			break;

		  // LABEL
		  case 0x0204:
/*DBG*/  $this->dbglog->trace("found LABEL");
			if( ($biff_ver < 3) ){
			    break;
			}
			if( (ord($ws[$ptr+2])+256*ord($ws[$ptr+3])) < 8 ){
				return 6;
			}
			$row = ord($ws[$ptr+4])+256*ord($ws[$ptr+5]);
			$col = ord($ws[$ptr+6])+256*ord($ws[$ptr+7]);
			$xf = ord($ws[$ptr+8])+256*ord($ws[$ptr+9]);
			$fonti = $this->xf['font'][$xf];
			$font =  $this->fonts[$fonti];


			$str_len = ord($ws[$ptr+10])+256*ord($ws[$ptr+11]);

			if( $ptr+12+$str_len > strlen($ws) )
				return 6;
			$this->sst['unicode'][] = false;
			$this->sst['data'][] = substr($ws,$ptr+12,$str_len);
			$data['cell'][$row][$col]['type'] = 0;
			$sst_ind = count($this->sst['data'])-1;
			$data['cell'][$row][$col]['data'] = $sst_ind;
			$data['cell'][$row][$col]['font'] = $fonti;

/*			echo str_replace("\n","<br>\n", ExcelFont::toString($font,$fonti));
		    echo "FontRecord for sting ".$this->sst['data'][$sst_ind]."<br>";*/

			if( !isset($data['max_row']) ||
			    ($data['max_row'] < $row) )
				$data['max_row'] = $row;

			if( !isset($data['max_col']) ||
			    ($data['max_col'] < $col) )
				$data['max_col'] = $col;



			break;

		  // LABELSST
		  case 0x00fd:
			if( $biff_ver < 8 ) break;
			if( (ord($ws[$ptr+2])+256*ord($ws[$ptr+3])) < 0x0a )
				return 6;
			$row = ord($ws[$ptr+4])+256*ord($ws[$ptr+5]);
			$col = ord($ws[$ptr+6])+256*ord($ws[$ptr+7]);
			$xf = ord($ws[$ptr+8])+256*ord($ws[$ptr+9]);
			$fonti = $this->xf['font'][$xf];
			$font = &$this->fonts[$fonti];

			$data['cell'][$row][$col]['type'] = 0;
			$sst_ind = ExcelParserUtil::str2long(substr($ws,$ptr+10,4));
			$data['cell'][$row][$col]['data'] = $sst_ind;
			$data['cell'][$row][$col]['font'] = $fonti;

/*            echo "FontRecord for sting at $row,$col<br>";
			echo str_replace("\n","<br>\n", ExcelFont::toString($font,$fonti));*/

			if( !isset($data['max_row']) ||
			    ($data['max_row'] < $row) )
				$data['max_row'] = $row;

			if( !isset($data['max_col']) ||
			    ($data['max_col'] < $col) )
				$data['max_col'] = $col;

			break;

		  // unknown, unsupported or unused opcode
		  default:
			break;
		 }

		$ptr += 4+256*ord($ws[$ptr+3])+ord($ws[$ptr+2]);
		}
		//$this->dbglog->debug("parse_worksheet() function returns ".var_export($data,true));

		return $data;

	}

	// Parse workbook
	//----------------

	function parse_workbook( $f_header, $dp ) {

/*DBG*/ $this->dbglog->debug("parse_workbook() function");

		$root_entry_block = $f_header->getLong(0x30);
		$num_fat_blocks = $f_header->getLong(0x2c);

/*TRC*/ $this->dbglog->trace("Header parsed");

		$this->fat = array();
		for( $i = 0; $i < $num_fat_blocks; $i++ ){
/*TRC*/		$this->dbglog->trace("FOR LOOP iteration i =".$i);

			$fat_block = $f_header->getLong( 0x4c + 4 * $i );			
			$fatbuf = $dp->get( $fat_block * 0x200, 0x200 );
			$fat = new DataProvider( $fatbuf, DP_STRING_SOURCE );

			if( $fat->getSize() < 0x200 ){
/*DBG*/    		$this->dbglog->debug("parse_workbook() function found (strlen($fat) < 0x200) returns 6");
				return 6;
			}
			
			for( $j=0; $j<0x80; $j++ )
				$this->fat[] = $fat->getLong( $j * 4 );
					
			$fat->close();
			unset( $fat_block, $fatbuf, $fat );			
		}
		
/*DBG*/ $this->dbglog->dump( $this->fat, "\$fat" );
		
		if( count($this->fat) < $num_fat_blocks ) {
/*DBG*/    	$this->dbglog->debug("parse_workbook() function found (count($this->fat) < $num_fat_blocks) returns 6");
			return 6;
		}
		
		$chain = $this->get_blocks_chain($root_entry_block);
		$dir = new DataProvider( $dp->ReadFromFat( $chain ), DP_STRING_SOURCE );
		unset( $chain );

		$this->sfat = array();
		$small_block = $f_header->getLong( 0x3c );
		if( $small_block != 0xfeffffff ) {
			
			$root_entry_index = $this->find_stream( $dir, 'Root Entry');
			
			// Deleted for support MAC files
			
			//if( $root_entry_index < 0 ) {
/*DBG*/    		//$this->dbglog->debug("parse_workbook() function dont found Root Entry returns 6");
		    	//return 6;
		 	//}
		 	
		 	$sdc_start_block = $dir->getLong( $root_entry_index * 0x80 + 0x74 );
		 	$small_data_chain = $this->get_blocks_chain($sdc_start_block);
		 	$this->max_sblocks = count($small_data_chain) * 8;
		 	
		 	$schain = $this->get_blocks_chain($small_block);		 	
		 	for( $i = 0; $i < count( $schain ); $i++ ) {
		 		
				$sfatbuf = $dp->get( $schain[$i] * 0x200, 0x200 );
				$sfat = new DataProvider( $sfatbuf, DP_STRING_SOURCE );
				
				//$this->dbglog->dump( strlen($sfatbuf), "strlen(\$sftabuf)");
				//$this->dbglog->dump( $sfat, "\$sfat");
				
		  		if( $sfat->getSize() < 0x200 ) {
/*DBG*/    	 		$this->dbglog->debug("parse_workbook() function found (strlen($sfat) < 0x200)  returns 6");
		     		return 6;
 	      		}
 	      		
		  		for( $j=0; $j<0x80; $j++ )
		   			$this->sfat[] = $sfat->getLong( $j * 4 );
		   		
		   		$sfat->close();
		   		unset( $sfatbuf, $sfat );
		 	}
		 	unset( $schain );

		 	$sfcbuf = $dp->ReadFromFat( $small_data_chain );
		  	$sdp = new DataProvider( $sfcbuf, DP_STRING_SOURCE );
		  	unset( $sfcbuf, $small_data_chain );
		}

		$workbook_index = $this->find_stream( $dir, 'Workbook' );
		if( $workbook_index<0 ) {
			$workbook_index = $this->find_stream( $dir, 'Book' );
			if( $workbook_index<0 ){
/*DBG*/    	    $this->dbglog->debug("parse_workbook() function workbook index not found returns 7");
				return 7;
			}
		}

		$workbook_start_block = $dir->getLong( $workbook_index * 0x80 + 0x74 );
		$workbook_length = $dir->getLong( $workbook_index * 0x80 + 0x78 );
		$wb = '';

		if( $workbook_length > 0 ) {
			if( $workbook_length >= 0x1000 ) {
				$chain = $this->get_blocks_chain($workbook_start_block);
				$wb = $dp->ReadFromFat( $chain );
		 	} else {
				$chain = $this->get_blocks_chain($workbook_start_block,true);
				$wb = $sdp->ReadFromFat( $chain, 0x40 );
				unset( $sdp );
		 	}
			$wb = substr($wb,0,$workbook_length);
			if( strlen($wb) != $workbook_length )
				return 6;
			unset( $chain );
		}
		
		// Unset fat arrays
		unset( $this->fat, $this->sfat );

		if( strlen($wb) <= 0 ) {
/*DBG*/    $this->dbglog->debug("parse_workbook() function workbook found (strlen($wb) <= 0) returns 7");
		   return 7;
		}
		if( strlen($wb) <  4 ) {
/*DBG*/    $this->dbglog->debug("parse_workbook() function workbook found (strlen($wb) < 4) returns 6");
		    return 6;
		}
			
		// parse workbook header
		if( strlen($wb) < 256*ord($wb[3])+ord($wb[2]) ){
/*DBG*/ 	$this->dbglog->debug("parse_workbook() function workbook found (strlen($wb) < 256*ord($wb[3])+ord($wb[2])) < 4) returns 6");
			return 6;
		}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合丝袜美腿| 99精品视频一区二区三区| 成人av午夜影院| 欧美剧在线免费观看网站| 国产女主播一区| 日韩国产欧美在线观看| 色狠狠色噜噜噜综合网| 中文子幕无线码一区tr| 日本系列欧美系列| 欧洲一区二区三区在线| 国产精品福利一区| 国产一区二区三区观看| 日韩午夜电影av| 天天综合网天天综合色| 91国偷自产一区二区使用方法| 337p粉嫩大胆噜噜噜噜噜91av| 午夜精品一区二区三区电影天堂| 不卡在线观看av| 久久久精品综合| 激情深爱一区二区| 欧美一区二区观看视频| 亚洲一区二区三区三| 91成人在线精品| 亚洲另类色综合网站| 成人av资源在线观看| 国产视频一区在线播放| 国产精品一品二品| 久久久噜噜噜久久中文字幕色伊伊 | 在线观看91av| 午夜久久久影院| 欧美性猛片aaaaaaa做受| 亚洲综合视频在线观看| 欧美最新大片在线看 | 久久亚洲一级片| 国产精品亚洲午夜一区二区三区| 精品99一区二区| 狠狠色丁香婷婷综合久久片| 欧美精品一区视频| 国产成人免费在线| 中文字幕av不卡| 色综合天天性综合| 亚洲风情在线资源站| 欧美精品欧美精品系列| 久久国产福利国产秒拍| 久久久九九九九| 99精品欧美一区二区三区小说| 亚洲免费大片在线观看| 欧美自拍偷拍午夜视频| 日韩激情av在线| 精品久久久久久久人人人人传媒 | 91精品国产aⅴ一区二区| 免费日韩伦理电影| 久久精品欧美一区二区三区麻豆| 国产盗摄视频一区二区三区| 亚洲图片你懂的| 欧美喷水一区二区| 狠狠色丁香婷综合久久| 亚洲欧美一区二区视频| 欧美高清你懂得| 国产成人自拍网| 亚洲国产日韩av| 欧美一区二区黄| 成人美女视频在线观看| 亚洲mv在线观看| 国产性色一区二区| 欧美中文字幕一区二区三区亚洲| 日韩va欧美va亚洲va久久| 国产欧美日韩亚州综合| 91福利在线观看| 国内精品视频一区二区三区八戒| 亚洲国产激情av| 在线综合+亚洲+欧美中文字幕| 国产真实乱子伦精品视频| 亚洲综合色视频| 精品国产91亚洲一区二区三区婷婷| www.日韩av| 久草精品在线观看| 亚洲男同性恋视频| 久久久久九九视频| 欧美久久久一区| 91女厕偷拍女厕偷拍高清| 裸体健美xxxx欧美裸体表演| 最新不卡av在线| 欧美精品一区二区三区四区| 欧美日韩国产精选| 99re66热这里只有精品3直播 | 亚洲自拍偷拍麻豆| 欧美韩国日本不卡| 精品精品国产高清一毛片一天堂| 91丝袜美腿高跟国产极品老师| 久久国产精品99久久人人澡| 亚洲国产精品一区二区www| 中文字幕欧美国产| 精品国免费一区二区三区| 欧美日韩免费电影| 色欧美乱欧美15图片| 高清视频一区二区| 国产精品1区2区3区| 七七婷婷婷婷精品国产| 亚洲无线码一区二区三区| 亚洲免费观看在线视频| 国产精品高潮呻吟久久| 中日韩免费视频中文字幕| 久久美女艺术照精彩视频福利播放 | 成人av网站大全| 国产麻豆精品在线观看| 蜜臀久久久久久久| 麻豆久久一区二区| 日本不卡视频在线| 日本欧美肥老太交大片| 青青草97国产精品免费观看无弹窗版 | 日韩电影在线一区| 亚洲成人动漫av| 天使萌一区二区三区免费观看| 一区二区三区免费网站| 亚洲一区二区三区免费视频| 一二三区精品视频| 午夜精品国产更新| 日韩在线a电影| 国产一区在线精品| 国产1区2区3区精品美女| www.在线成人| 91搞黄在线观看| 欧美一区永久视频免费观看| 91精选在线观看| 欧美成人r级一区二区三区| 精品国产3级a| 中文字幕成人网| 18成人在线观看| 亚洲电影在线播放| 美女国产一区二区| 国产精品资源在线| 91网站最新网址| 欧美日韩一区二区三区四区五区| 欧美一区日韩一区| 国产亚洲精品精华液| 亚洲色图制服诱惑| 午夜精品久久久久久久蜜桃app| 麻豆高清免费国产一区| 国产99精品视频| 欧美视频在线播放| 久久综合九色综合97婷婷| 国产精品美女久久久久久| 亚洲与欧洲av电影| 国产美女娇喘av呻吟久久| 91色九色蝌蚪| 日韩一二在线观看| 中文字幕亚洲综合久久菠萝蜜| 亚洲综合激情小说| 国产一区二区导航在线播放| 一本一道波多野结衣一区二区| 欧美精选一区二区| 国产精品欧美精品| 免费三级欧美电影| 色先锋aa成人| 久久久久一区二区三区四区| 中文字幕一区日韩精品欧美| 日韩国产在线一| 91在线观看视频| www国产亚洲精品久久麻豆| 亚洲婷婷综合久久一本伊一区| 青青草原综合久久大伊人精品 | 欧美在线不卡一区| 国产农村妇女精品| 免费成人在线观看| 91官网在线免费观看| 国产亚洲欧美日韩日本| 日韩福利电影在线观看| 91性感美女视频| 国产日韩v精品一区二区| 青青青爽久久午夜综合久久午夜| 成人国产精品免费网站| 欧美一区日本一区韩国一区| 国产精品理伦片| 国产在线视频精品一区| 在线成人免费视频| 日产国产欧美视频一区精品 | 一本到不卡免费一区二区| 国产欧美日韩在线看| 久久国产三级精品| 欧美一区二区三区人| 亚洲国产中文字幕| 91黄色激情网站| 亚洲免费三区一区二区| 91丨porny丨最新| 中文字幕成人av| 成人性生交大片免费看中文网站| 欧美一区二区三区啪啪| 日韩福利电影在线| 日韩一区二区视频| 日日骚欧美日韩| 91.com在线观看| 日产国产高清一区二区三区| 在线播放/欧美激情| 性做久久久久久免费观看| 91国偷自产一区二区开放时间 | 国产成人av一区二区三区在线| 日韩欧美国产精品| 麻豆91小视频| 久久久亚洲精华液精华液精华液 |