1

Visual Studio 2010 で SSIS パッケージを作成して、MS SQL データベースからデータを抽出し、作成したスプレッドシート テンプレートにデータを挿入しました。A3 で出力の書き込みを開始しようとしていますが、B11:C13 にデータの概要があるため、常に A14 で書き込みを開始します。

OpenRowset パラメータも設定しようとしましたが、開始したい場所の下にデータがあるため、機能しません。

要約データを含めて、私がやりたいことをすることは可能ですか?

4

1 に答える 1

0

回避策: 1 つ目は、最初にデータをワークシートにダンプし、その後、要約を 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 に答える