如何使用SSIS在现有Excel工作表中的2行之间插入新行

时间:2012-10-08 15:53:44

标签: ssis

我在Visual Studio 2010中创建了一个SSIS包,用于从MS SQL数据库中提取数据,并将数据插入到我创建的电子表格模板中。我试图让它开始在A3上写输出,但由于我对B11中的数据有一个总结:C13它总是在A14开始写。

我还尝试设置OpenRowset参数,但由于下面有数据我希望它启动它不起作用。

是否可以使用所包含的摘要数据执行我想要的操作?

1 个答案:

答案 0 :(得分:0)

解决方法: 第一个是首先在工作表中转储数据,然后在B11:C13中插入摘要。或者您可以使用SSIS脚本添加此摘要以使用OLE技术驱动Excel它允许您从SSIS.Below创建一个代码片段以插入A6:B6单元格中:

using System;
using System.Drawing;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel; 

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                System.Data.OleDb.OleDbConnection MyConnection ;
                System.Data.OleDb.OleDbCommand myCommand = new System.Data.OleDb.OleDbCommand();
                string sql = null;
                MyConnection = new System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='c:\\csharp.net-informations.xls';Extended Properties=Excel 8.0;");
                MyConnection.Open();
                myCommand.Connection = MyConnection;
                sql = "Insert into [Sheet1$] (id,name) values('5','e')";
                myCommand.CommandText = sql;
                myCommand.ExecuteNonQuery();
                MyConnection.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show (ex.ToString());
            }
        }
   }
}

此摘要也可以从宏中添加(因此您必须在excel文件中转储数据后运行它),但它没有意思,因为它在SSIS和Excel宏上拆分应用程序不太好......; - )