本帖最后由 djyjysxxs 于 2012-5-31 16:26 编辑
整个冷门的,也许有朋友用得上。php通过adodb打开excel显示在当前页面,当需要下载时,点按钮就可以以csv文件格式下载了。
//通过adodb打开excel的文件xls,显示在当前页面上,并提供下载按钮,点该按钮则生成csv文件供用户下载或直接打开。
//在win7+iis+php下通过
$conn=new com("adodb.connection") or die("cannot start adodb.connection");
$conn->open("provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=".realpath("test.xls"));//默认为当前路径下的test.xls文件
$rs=new com("adodb.recordset") or die("ado recordset failed");
$query="select * from [sheet1$] where zxdm=811";//数据存放在表sheet1中
$rs->open($query,$conn,1,1);
$fcount=$rs->fields->count;
//以下生成csv文件供下载
if($_POST['download']){
header('content-type:application/vnd.ms-excel');
header('content-disposition:attachment;filename="downloaded.csv"');
for ($i=0;$i
echo "\t".$rs->fields[$i]->name.",";
}
echo "\n";
while (!$rs->eof){
for ($i=0;$i
echo "\t".$rs->fields[$i]->value.",";
}
echo "\n";
$rs->movenext;
}
exit();
}
//csv文件生成结束
echo "
";//下载按钮//以下将数据显示在当前页面上
echo "
//生成表头
for ($i=0;$i
echo "
".$rs->fields[$i]->name."";}
echo "
";//生成数据
while (!$rs->eof){
echo "
";for ($i=0;$i
echo "
".$rs->fields[$i]->value."";}
echo "
";$rs->movenext;
}
echo "
";//生成数据结束
$rs->close();
$conn->close();
?>