我在Visual Studio 2010中创建了一个SSIS包,用于从MS SQL数据库中提取数据,并将数据插入到我创建的电子表格模板中。我试图让它开始在A3上写输出,但由于我对B11中的数据有一个总结:C13它总是在A14开始写。
我还尝试设置OpenRowset参数,但由于下面有数据我希望它启动它不起作用。
是否可以使用所包含的摘要数据执行我想要的操作?
答案 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宏上拆分应用程序不太好......; - )