通过SSIS动态创建Excel表



使用SSIS中的执行SQL任务 - 创建的Excel文件 - 包含多个列和不同的数据类型。此处的问题是INT/货币列,即使Excel Tabter在Excel中显示为文本列使用INT/Money Datatype

创建

我尝试使用双重精度,cy datatypes,但什么也没有解决。

CREATE TABLE `Employer` (
`MEMBERSHIP NUMBER` VARCHAR(30),
`RETIREE #` VARCHAR(12),
`COPID` CHAR(6),
`PERSON LAST NAME` VARCHAR(150),
`FIRST NAME` VARCHAR(150),
`RETIREE PLAN` CHAR(15),
`PLAN NAME` CHAR(200),
`BILL GROUP` INT,
`BRANCH ID` CHAR(3),
`CONTRACT NUMBER` CHAR(5),
`PBP` CHAR(3),
`BRANCH NAME` VARCHAR(150),
`COVERAGE MONTH` DATE,
`DUE AMOUNT` INT
)

预期输出应以输入数据类型格式。

ole db数据类型和excel

即使您可以使用OLE DB命令在Excel中创建表,Excel文件也不是列具有数据类型的数据库。OLE DB提供商仅读取表格数据,需要为每列指定数据类型。因此,即使Excel具有在同一列中存储多个数据类型的能力,您也必须指定列数据类型。

使用OLE DB提供商读取Excel的缺点之一是,如果列包含混合的数据类型,则仅读取主要数据类型,并将所有剩余的数据类型转换为NULL

  • 从Excel导入具有混合数据类型(SSIS(中混合数据类型的数据
  • Excel列中的混合数据类型

excel编号格式属性

另一方面,Excel中的单元格属性称为数字格式,用于更改excel中值的方式。您可以使用此属性将值显示为货币。

  • 格式为货币
  • 如何在Excel 2010中以货币显示数字

解决方案

您可以使用两种方法来解决该问题:

(1(使用脚本任务更改列号格式

您可以添加脚本任务,并使用Interop.dll汇编更改整个列号格式。

  • 格式为c#?
  • 中的excel列(或单元格(作为文本
  • 使用C#
  • 格式化整个Excel列

(2(创建一个Excel模板文件

您可以创建一个Excel文件并根据需要更改列号格式,并将此文件用作模板。您可以将文件复制为目标目录,然后执行数据导入阶段。

  • 快速启动:工作表中的格式号

最新更新