使用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文件并根据需要更改列号格式,并将此文件用作模板。您可以将文件复制为目标目录,然后执行数据导入阶段。
- 快速启动:工作表中的格式号