【发布时间】:2013-07-25 13:46:45
【问题描述】:
我们有一个问题,我们必须加载不同的 excel 文件模板,这里是模板
模板#1: 姓名地址城市邮编
模板#2: 姓名 城市 州 地址 电话号码
我们不知道我们可以得到什么格式,使用 SSIS 如何加载列名动态变化的 excel 文件?
提前致谢
【问题讨论】:
我们有一个问题,我们必须加载不同的 excel 文件模板,这里是模板
模板#1: 姓名地址城市邮编
模板#2: 姓名 城市 州 地址 电话号码
我们不知道我们可以得到什么格式,使用 SSIS 如何加载列名动态变化的 excel 文件?
提前致谢
【问题讨论】:
如果您确定只会获得 2 种不同的模板类型,您可以按照以下方法:
使用以下代码作为参考编辑脚本任务:
//using excel = Microsoft.Office.Interop.Excel;
excel.Application xlapp = null;
excel.Workbook xlbook = null;
excel.Worksheet xlsheet = null;
string src = @"filename.xls";
try
{
xlapp = new excel.Application();
xlbook = xlapp.Workbooks.Open(src, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
xlsheet = (excel.Worksheet) xlbook.Worksheets[0];
//If fifth cell is empty, template has 4 columns i.e. first template
excel.Range decider = (excel.Range)xlsheet.Cells[1, 5];
if (string.IsNullOrEmpty(decider.Text.ToString()))
{
Dts.Variables["User::templateType"].Value = 1;//first template
}
else
{
Dts.Variables["User::templateType"].Value = 2;//second template
}
xlbook.Close(false);
xlapp.Quit();
}
catch (Exception ex)
{
}
finally
{
xlsheet = null;
xlbook = null;
xlapp = null;
}
Dts.TaskResult = (int)ScriptResults.Success;
【讨论】: