2011-03-03 77 views
0

试图(和主要成功)的查询结果从SQL Server导出到Excel中,像这样:SQL Server 2005 - > Excel导出不保留数据类型?

insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
    'Excel 8.0;Database=c:\exported excel files\exported_data.xls;', 
    'SELECT * FROM [Query$]') SELECT dbo.blabbityblah FROM dbo.the_table 

它的工作原理!有点。它会将数据导出到excel文件,但它将所有数据都作为文本存储在那里,即使某些列是日期时间,其中大部分都是数字。它们都没有在查询本身中被转换()。在运行查询之前,我已经尝试在实际的Excel文件中预先格式化单元格,但它忽略了现有的格式化,并将其全部再次作为文本吐出。

有一种方法可以做到这一点,对吧?

回答

1

excel没有数据类型,其基于文本和预格式不工作,因为它取代了现有的文件。如果你想数据类型尝试MS Access。

+0

+1 - Excel的显示格式是<>数据类型。您仍然可以在日期字段或数字字段中输入字符串数据。 – JNK 2011-03-03 19:00:07

+0

是的,我知道Excel没有正确的数据类型,我的意思是我希望它根据导出的数据类型对单元格进行格式化,或者至少根据我放入的格式进行失败。听起来不像有一种方法。不管怎么说,还是要谢谢你。 – extarbags 2011-03-03 19:43:30

0

查看使用schema.ini文件来定义csv或txt中的数据类型。当您打开了在Excel中,可以达到你想要

[sample_out.csv] 
Format=CSVDelimited 
DecimalSymbol=. 
Col1=DATE datetime 
Col2=FName Text 
0

你可能想看看根据您的需要另一种方法是使用导入和导出向导什么。您可以自定义数据查询并在向导中指定数据类型。如果您使用Express以外的SKU,则可以立即运行它,或保存生成的SSIS包进行进一步操作。

+0

是的,这也可以自动化为一个宏 – datatoo 2011-03-04 06:48:54

相关问题