如何使用Powershell中的SQLCMD将结果导出到Excel

时间:2015-08-04 14:20:04

标签: sql sql-server powershell cmd sqlcmd

我在PowerShell中使用SQLCMD命令来运行SQL脚本。当我将输出传输到TXT时,格式化全部搞砸了。我想将结果导出到Excel文件。我怎么能这样做?

我的命令

Sqlcmd -Q 'select top 10 * from people'  -S serverName -d testDB -o c:\output.txt | format-table

2 个答案:

答案 0 :(得分:2)

使用sqlcmd.exe的列分隔符开关-s。然后你可以使用excel的'Text to Columns',或者在知道列分隔符的情况下导入它。

  

-s col_separator

     

指定列分隔符。默认值为空格。此选项设置sqlcmd脚本编制变量SQLCMDCOLSEP。要使用对操作系统有特殊含义的字符,例如&符号(&)或分号(;),请将字符用引号(“)括起来。列分隔符可以是任何8位字符。

答案 1 :(得分:0)

您可以使用csv2xls工具

我在大约10年前在一家使用vb.NET工作的公司写过一篇文章,但现在肯定会有来自github或sourceforge的Open surce。

最终,如果您在使用PowerShell的同一台计算机上安装了Ms-Office,则可以使用它来打开生成的csv并将其另存为xls。

请参阅https://social.technet.microsoft.com/Forums/windowsserver/en-US/370ee470-f2cd-4f30-a167-b106dd51d47a/powershell-convert-csv-to-xlsx?forum=winserverpowershell

上的示例