我有一个ASP.NET 4.0 web app
,它将数据从SQL Server 2008 R2
读取到DataSet
。现在我想将这些数据写入xls
文件(Office 2003)。目前,我使用CREATE TABLE
创建了一个空的工作表,并使用插入语句逐行将数据写入其中。但是我真正想要的是根据数据集中的数据形成excel文件中的colunmns。例如,如果数据集中的字段是system.decimal类型的,我希望将excel中的相应列作为小数格式化。使用OLEDB创建xls工作表时的数据类型
到目前为止,我在我的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
形成的?我知道你不能像颜色,字体,宽度等改变数据表示,但是我能否确定单元格格式?