这一段代码可以输出EXCEL文件,但要自己另存为,能否改动下变为自己保存。<?php  
$DB_Server = "localhost";   
$DB_Username = "root";  
$DB_Password = "";    
$DB_DBName = "product";   
$DB_TBLName = "product";    
$Connect = @mysql_connect($DB_Server, $DB_Username, $DB_Password)   
    or die("Couldn't connect.");  
$Db = @mysql_select_db($DB_DBName, $Connect)  
    or die("Couldn't select database.");  
$file_type="vnd.ms-excel";  
$file_ending="xls";  
header("Content-type:application/vnd.ms-excel"); 
header("Content-Disposition:filename=test.xls");  // 这样可以但不能自动保存
//header("Content-Disposition:attachment;filename=test.$file_ending");  // 这一行为保存可是有错误  header("Pragma: no-cache");  
header("Expires: 0");  
$now_date = date('Y-m-d H:i');  
$title = "数据库名:$DB_DBName,数据表:$DB_TBLName,备份日期:$now_date";  
$sql = "Select * from $DB_TBLName";       
$ALT_Db = @mysql_select_db($DB_DBName, $Connect)  
    or die("Couldn't select database");  
$result = @mysql_query($sql,$Connect)  
    or die(mysql_error());  
echo("$title\n");  
$sep = "\t";  
for ($i = 0; $i < mysql_num_fields($result); $i++) {  
echo mysql_field_name($result,$i) . "\t";  
}  
print("\n"); 
    $i = 0;  
    while($row = mysql_fetch_row($result))  
    {  
        $schema_insert = "";  
        for($j=0; $j<mysql_num_fields($result);$j++)  
        {  
            if(!isset($row[$j]))  
                $schema_insert .= "NULL".$sep;  
            elseif ($row[$j] != "")  
                $schema_insert .= "$row[$j]".$sep;  
            else  
                $schema_insert .= "".$sep;  
        }  
        $schema_insert = str_replace($sep."$", "", $schema_insert);  
        $schema_insert .= "\t";  
        print(trim($schema_insert));  
        print "\n";  
        $i++;  
    }  
    return (true);      
?> 
请高手们帮忙看一下?

解决方案 »

  1.   

    再问一个问题:
      PHP有没有办法能够改变目录的权限??
      如文件可以用chmod,目录呢??
      

  2.   

    不能自动保存,帮你up一下
    可以用com或者javascript生成office文件。chmod不能更改目录权限吗?
    用这个命令也必须要有权限
      

  3.   


    TO:LeeMaRS(小菜虎_水壶的仇人) 
    你把那一行注释去掉,而把它上面一行注释掉,就有错误了???TO:wasy(嘻嘻哈哈) :我知道必须有权限,但是我想知道假如我有权限,有没有命令可以更改目录权限?
      

  4.   

    windows不支持chmod
    kao,我說的意思是chmod照樣可以用於目錄呀參考:
    <script>
    var ExcelSheet;
    ExcelApp = new ActiveXObject("Excel.Application");
    ExcelSheet = new ActiveXObject("Excel.Sheet");
    ExcelSheet.Application.Visible = true;
    /*下面写入数据,可以嵌合php代码,逐一生成js写入语句*/
    ExcelSheet.ActiveSheet.Cells(1,1).Value = "<?=$name?>";
    ExcelSheet.ActiveSheet.Cells(1,2).Value = "This is column A, row 2";
    ExcelSheet.ActiveSheet.Cells(2,1).Value = "This is column B, row 1";
    ExcelSheet.ActiveSheet.Cells(2,2).Value = "This is column B, row 2";
    ExcelSheet.SaveAs("C:\\xxx.XLS");
    ExcelSheet.Application.Quit();
    </script>
    条件是更改ie设置:
    设置->安全性->自定义
    将初始化不安全的activeX控制项设置为启用至於com函數沒有用過
      

  5.   

    to pokar(因为菜所以菜):我就是直接COPY你的代码去运行,结果正确.
      

  6.   

    那有什么办法读取execl的文档那?
      

  7.   

    to:LeeMaRS(小菜虎_水壶的仇人) 
       
       你有没有改掉那注释to:wasy(嘻嘻哈哈) 
       我试试
      

  8.   

    我的意思是:   // 加上header("Content-Disposition:filename=test.xls");  // 这样可以但不能自动保存
    //把这个//去掉header("Content-Disposition:attachment;filename=test.$file_ending");  // 这一行为保存可是有错误  
      

  9.   

    研究了一下com for excel,参考:
    test.php:
    <?php
    $exapp = new COM("Excel.application") or Die ("Did not connect");
    $wkb=$exapp->Workbooks->add();
    $ex->Application->Visible = 1; 
    $sheets = $wkb->Worksheets(1); //选择第一个sheet
    $sheets->activate; //激活
    $sheets->name="Report First page";//更名
    //填充单元格
    $maxi=20;
    $m=1;
    for ($i=1;$i<$maxi;$i++) {
    for($n=1;$n<5;$n++){
    $cell = $sheets->Cells($i,$n) ; #Select the cell (Row Column number) $cell->activate;
    $cell->value = $m;
    $m++;
    }
    }
      

  10.   

    接上://画图
    $ch = $sheets->chartobjects->add(50, 40, 400, 100); #作图
    $chartje = $ch->chart; 
    $chartje->activate; 
    $chartje->ChartType=63;
    $selected = $sheets->range("E1:E$maxi");  
    $chartje->setsourcedata($selected); 
    //存盘
    $file_name="D:/test.xls"; //路径
    if (file_exists($file_name)) {@unlink($file_name) or die("文件已经存在,并无法删除!");}
    $wkb->SaveAs($file_name); //save
    $exapp->Quit();
    unset($exapp);
    echo "生成成功!";
    ?>
      

  11.   

    TO:wasy(嘻嘻哈哈)
      
        测试成功,谢谢!!我把前面的程序一结合,就行了。再次谢谢wasy(嘻嘻哈哈)    wasy(嘻嘻哈哈)能否交个朋友,我的QQ:490075
      

  12.   

    无奈ing...
    其实楼主的那个程序(就是你现在帖上来那个,什么都没改,注释什么一个字都没动)在我的机子上是可以正确运行的,可以自动提示下载.