将SQL Server查询结果导出到Excel工作表

时间:2011-08-22 14:59:48

标签: sql-server

我有一个查询(例如: - select * from emp)。我想自动将此查询的结果导出到Excel工作表,文件名也应该是动态的(例如: - emp_1Emp_2,....)。

请帮助我...

先谢谢

Venkat

2 个答案:

答案 0 :(得分:1)

这是一个PHP功能,可以满足您的需求:

function createExcelFile($sql, $filename){

$export = mysql_query ( $sql ) or die ($sql." " . "Sql error : " . mysql_error( ) );

$fields = mysql_num_fields ( $export );

for ( $i = 0; $i < $fields; $i++ )
{
    $header .=  mysql_field_name( $export , $i ) . "\t";
}

while( $row = mysql_fetch_row( $export ) )
{
    $line = '';
    foreach( $row as $value )
    {                                            
        if ( ( !isset( $value ) ) || ( $value == "" ) )
        {
            $value = "\t";
        }
        else
        {
            $value = str_replace( '"' , '""' , $value );
            $value = addslashes($value) . "\t";
        }
        $line .= $value;
    }
    $data .= trim( $line ) . "\n";
}
$data = str_replace( "\r" , "" , $data );

if ( $data == "" )
{
    $data = "\n(0) Records Found!\n";                        
}

header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=" . $filename);
header("Pragma: no-cache");
header("Expires: 0");
print "$header\n$data";

}

答案 1 :(得分:1)

SSMS不会导出为ex​​cel格式。 (你可以复制/过去你的结果excel虽然......但它是手动的。)

Excel可以直接对数据库运行查询。这是一种方式:http://pcquest.ciol.com/content/handson/103040303.asp。这种方法需要一个dsn(你可以在windows中创建它 - 谷歌dsn和windows ...)

通常,当我想将结果放入excel时,我所做的就是通过我的(asp.net)Web应用程序创建它。从那里很容易做到,因为Excel可以读取html(例如,渲染数据控件就像调用该控件上的方法一样简单)。您需要快速更改响应流(内容类型等)。这很容易 - 只是谷歌!

如果您尝试这些方法中的任何一种,并且无法让它们起作用,请回来询问。祝你好运!