我有一个查询(例如: - select * from emp
)。我想自动将此查询的结果导出到Excel工作表,文件名也应该是动态的(例如: - emp_1
,Emp_2
,....)。
请帮助我...
先谢谢
Venkat
答案 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不会导出为excel格式。 (你可以复制/过去你的结果excel虽然......但它是手动的。)
Excel可以直接对数据库运行查询。这是一种方式:http://pcquest.ciol.com/content/handson/103040303.asp。这种方法需要一个dsn(你可以在windows中创建它 - 谷歌dsn和windows ...)
通常,当我想将结果放入excel时,我所做的就是通过我的(asp.net)Web应用程序创建它。从那里很容易做到,因为Excel可以读取html(例如,渲染数据控件就像调用该控件上的方法一样简单)。您需要快速更改响应流(内容类型等)。这很容易 - 只是谷歌!
如果您尝试这些方法中的任何一种,并且无法让它们起作用,请回来询问。祝你好运!