1

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

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

是否可以使用包含的摘要数据做我想做的事情?

4

1 回答 1

0

一种解决方法:第一个是首先将您的数据转储到工作表中,然后在 B11:C13 中插入​​您的摘要。或者您可以使用 SSIS 脚本添加此摘要以使用 OLE 技术驱动 excel 它允许您从 SSIS 制作流程。下面的代码片段插入 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 宏不太好... ;-)

于 2012-10-14T10:20:00.820 回答