我有一个excel文件,其中有大量数据由2个空行分隔。我需要将这2个数据集分成两个CSV文件。所以在SSIS数据流中我选择了“Excel Source”下一个“条件分割”和“平面文件目的地”。问题是如何设置拆分来完成这项工作?
Excel数据示例:
Server_name | PrimarySA | SecondarySA
srv1 | SA1 | SA1
srv2 | SA2 | SA2
srv3 | SA3 | SA3
空行| |
空行| |
srvA | SAa | SAA
srvB | SAb | SAB
srvC | SAc | SAC
答案 0 :(得分:0)
解决方案1:
1.1创建阶段表:
CREATE TABLE [dbo].[Stage]
(
[RowID] [int] IDENTITY(1,1) NOT NULL,
[Server_name ] [varchar](50) NULL,
[PrimarySA ] [varchar](50) NULL,
[SecondarySA ] [varchar](50) NULL
) ON [PRIMARY]
2.2 DFT1 - 加载数据。来源:XL文件,目的地:舞台表
2.3 DFT2 - 来源
SELECT [RowID]
,[Server_name ]
,[ PrimarySA ]
,[ SecondarySA ]
FROM [dbo].[Stage]
WHERE
RowID < (SELECT MIN (RowID)
FROM [dbo].[Stage] where [Server_name ] = 'empty row '
)
Destination: A new flat file File1
2.4 DFT 3: 来源:
SELECT [RowID]
,[Server_name ]
,[ PrimarySA ]
,[ SecondarySA ]
FROM [dbo].[Stage]
WHERE RowID > (SELECT MAX (RowID) from [dbo].[Stage] where [Server_name ] = 'empty row ')
Destination: Another flat file - File2
解决方案2:在脚本任务中执行此操作。读取每一行,检查行的长度或内容。如果找不到空白行,请写入文件1.如果找到空行,请关闭第一个文件,打开一个新的输出文件并写入此文件。
这将需要更多的编程知识,但能够处理具有多个“空行”的文件。如果您需要此解决方案(并卡住),请告诉我们;我或其他人会帮助你。