由于你没给出具体的页面,我只能给你一个通用的获取方法,有些页面可能有多个表格,这时需要你多加一些参数进行过滤了,其实个人首推正则匹配获取,示例代码:
在文成等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站设计、成都网站制作 网站设计制作按需求定制设计,公司网站建设,企业网站建设,品牌网站设计,营销型网站建设,成都外贸网站建设,文成网站建设费用合理。
$url = ""; //换成你自己需要获取的页面地址
$content = file_get_contents($url);
preg_matches("/table([.\n]+)\/table/",$contents,$matches);
echo $matches[0]; //即为表单内容
以下示例读取数据库,并以表格显示:
?php
header('Content-type:text/html;charset=utf-8');
$db = new mysqli('localhost','root','root','books');
$rows = $db-query('SELECT * FROM customers');
echo 'table border="1"trtd姓名/tdtd年龄/td/tr';
while($row = $rows-fetch_assoc()){
echo 'trtd'.$row['name'].'/td';
echo 'td'.$row['address'].'/td/tr';
}
?
Excel界面操作:数据——导入外部数据——新建Web查询:在出现的界面地址栏输入网址,然后选择需要更新的数据范围——导入——选择数据放的单元格(必要时修改属性,如刷新频率等)——确定。这样当网页数据变化时,Excel表格的数据就会同样改变。如果不想数据同步,复制粘贴值到其他地方,然后删除工作表。
如果非要用VBA,用录制宏稍作修改即可。代码如下,详见附件。
Sub Macro2()
Sheet1.Activate
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;", Destination:=Range("A1"))
.Name = "return_1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "7"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End Sub
不知道你是不是这个意思,你希望取出content字段中,含有表格标签的的字段。
如果是这样的话,
strstr($str2,$str1);
//从$str2中返回从$str1第一个字母开始到$str2结束的字串,有则返回该字串,无则返回false
或者正则ereg("table\",$str),包含table标签才读出
?php
class Page {
private $total; //数据表中总记录数
private $listRows; //每页显示行数
private $limit;
private $uri;
private $pageNum; //页数
private $config=array('header'="个记录", "prev"="上一页", "next"="下一页", "first"="首 页", "last"="尾 页");
private $listNum=8;
/*
* $total
* $listRows
*/
public function __construct($total, $listRows=10, $pa=""){
$this-total=$total;
$this-listRows=$listRows;
$this-uri=$this-getUri($pa);
$this-page=!empty($_GET["page"]) ? $_GET["page"] : 1;
$this-pageNum=ceil($this-total/$this-listRows);
$this-limit=$this-setLimit();
}
private function setLimit(){
return "Limit ".($this-page-1)*$this-listRows.", {$this-listRows}";
}
private function getUri($pa){
$url=$_SERVER["REQUEST_URI"].(strpos($_SERVER["REQUEST_URI"], '?')?'':"?").$pa;
$parse=parse_url($url);
if(isset($parse["query"])){
parse_str($parse['query'],$params);
unset($params["page"]);
$url=$parse['path'].'?'.http_build_query($params);
}
return $url;
}
private function __get($args){
if($args=="limit")
return $this-limit;
else
return null;
}
private function start(){
if($this-total==0)
return 0;
else
return ($this-page-1)*$this-listRows+1;
}
private function end(){
return min($this-page*$this-listRows,$this-total);
}
private function first(){
if($this-page==1)
$html.='';
else
$html.="nbsp;nbsp;a href='javascript:setPage(\"{$this-uri}page=1\")'{$this-config["first"]}/anbsp;nbsp;";
return $html;
}
private function prev(){
if($this-page==1)
$html.='';
else
$html.="nbsp;nbsp;a href='javascript:setPage(\"{$this-uri}page=".($this-page-1)."\")'{$this-config["prev"]}/anbsp;nbsp;";
return $html;
}
private function pageList(){
$linkPage="";
$inum=floor($this-listNum/2);
for($i=$inum; $i=1; $i--){
$page=$this-page-$i;
if($page1)
continue;
$linkPage.="nbsp;a href='javascript:setPage(\"{$this-uri}page={$page}\")'{$page}/anbsp;";
}
$linkPage.="nbsp;{$this-page}nbsp;";
for($i=1; $i=$inum; $i++){
$page=$this-page+$i;
if($page=$this-pageNum)
$linkPage.="nbsp;a href='javascript:setPage(\"{$this-uri}page={$page}\")'{$page}/anbsp;";
else
break;
}
return $linkPage;
}
private function next(){
if($this-page==$this-pageNum)
$html.='';
else
$html.="nbsp;nbsp;a href='javascript:setPage(\"{$this-uri}page=".($this-page+1)."\")'{$this-config["next"]}/anbsp;nbsp;";
return $html;
}
private function last(){
if($this-page==$this-pageNum)
$html.='';
else
$html.="nbsp;nbsp;a href='javascript:setPage(\"{$this-uri}page=".($this-pageNum)."\")'{$this-config["last"]}/anbsp;nbsp;";
return $html;
}
private function goPage(){
return 'nbsp;nbsp;input type="text" onkeydown="javascript:if(event.keyCode==13){var page=(this.value'.$this-pageNum.')?'.$this-pageNum.':this.value;setPage(\''.$this-uri.'page=\'+page+\'\')}" value="'.$this-page.'" style="width:25px"input type="button" value="GO" onclick="javascript:var page=(this.previousSibling.value'.$this-pageNum.')?'.$this-pageNum.':this.previousSibling.value;setPage(\''.$this-uri.'page=\'+page+\'\')"nbsp;nbsp;';
}
function fpage($display=array(0,1,2,3,4,5,6,7,8)){
$html[0]="nbsp;nbsp;共有b{$this-total}/b{$this-config["header"]}nbsp;nbsp;";
$html[1]="nbsp;nbsp;每页显示b".($this-end()-$this-start()+1)."/b条,本页b{$this-start()}-{$this-end()}/b条nbsp;nbsp;";
$html[2]="nbsp;nbsp;b{$this-page}/{$this-pageNum}/b页nbsp;nbsp;";
$html[3]=$this-first();
$html[4]=$this-prev();
$html[5]=$this-pageList();
$html[6]=$this-next();
$html[7]=$this-last();
$html[8]=$this-goPage();
$fpage='';
foreach($display as $index){
$fpage.=$html[$index];
}
return $fpage;
}
}
完整的PHP代码如下:
?php
//1.获得参数,你看你需要修改为$_GET等方式获得
$start=-23.4;
$stop=55.8;
$r_start=11.0;
$r_stop=12.2;
$maxj=7;
//2.输出表格
$i=0;//行号
echo 'table';
while (1){
$j=0;//列号
$resist=$r_start;
$d_line='tr bgcolor=#00ff00td'.$start.'℃';;
$h_line='tr bgcolor=#00fffftdResistance/Degres';
while ($j$maxj){
$val = ((11+$resist)*exp(4200.0*((1/(273.15+$start)-(1/(25+273.15))))));
$h_line.='td'.$resist.'Ω';
$d_line.='td bgcolor='.($start0?'#ffff00':'0000ff').''.$val;
$resist+=0.2;
if ($resist$r_stop) break;
$j++;
}
if ($i==0)echo $h_line;
echo $d_line;
if ($start=$stop) break;
$start+=10;
if ($start$stop) $start=$stop;
$i++;
}
echo '/table';
?
你的公式可能理解错误,怎么会每一行都只与开始温度-23.4有关呢,不是用当前温度计算吗,结果数值与你的有差异。