【发布时间】:2013-10-22 12:54:01
【问题描述】:
我有一个ASP.NET 4.0 web app,它将数据从SQL Server 2008 R2 读取到DataSet。现在我想将此数据写入xls 文件(Office 2003)。目前,我使用CREATE TABLE 创建了一个空工作表,并使用插入语句将数据逐行写入其中。但我真正想要的是根据数据集中的数据类型格式化excel文件中的列。例如,如果数据集中的字段是system.decimal类型,我希望将excel中的对应列格式化为小数。
到目前为止,我已经在CREATE TABLE statement 中尝试了不同的数据类型。我尝试了SQL datatypes(int、bigint、money、datetime、bit、nvarchar 和 xml 是我的数据库使用最多的),我还尝试了几个Excel-specific datatypes 以及几个OleDB 特定的,但没有成功.数据写入文件,但列保持默认格式。
一些详细信息:
String AceConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filename + "; Extended Properties=\"Excel 8.0; HDR=YES; IMEX=0; READONLY=FALSE;\""; //filename is the target xls file
**example CREATE TABLE statement (with SQL datatypes for the fields)**
CREATE TABLE [Report22.10.2013 14:45] ([IDKatalog] Int, [KatalogName] NVarChar(255), [Tabellenname] NVarChar(255), [KomplettUpdate] Bit, [IDLieferant] Int, [FreigabeVon] NVarChar(255), [FreigabeVonEMail] NVarChar(255), [IDKatalogAS] Int)
是否可以使用OLEDB 设置队形?我知道您无法更改颜色、字体、宽度等数据表示,但我可以确定单元格格式吗?
【问题讨论】:
标签: c# asp.net sql-server excel oledb