0

SQL Server テーブルから空の Excel スプレッドシートに直接選択したいと考えています。

FROM スプレッドシートを別の SQL Server テーブルに選択できます (以下の例を参照)。

ACCESS から空のスプレッドシートを直接選択できます (以下の例を参照)。

しかし、SQL Server から空のスプレッドシートに直接選択する方法が見つかりません。

(スプレッドシートをインポートし、データを数回操作して大量のレガシー データを操作します。次に、csv ファイルを必要とする他のプログラムで使用するためにエクスポートする必要があります。それを Excel に戻します。SELECT * INTOデータを処理しながらソース テーブルをフォーマットするので、テーブルをフォーマットするために を利用します。)

助けてくれてありがとう。

SELECT * INTO次のコードを使用して、Excel から SQL Server テーブルを取得できます。

string query = "SELECT * INTO " + tableName + " " +
               "FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0'," +
               "'Excel 12.0;Database=" + EXCELfilpath + ";IMEX=1'," +
               "'SELECT * FROM ["+sheetName+"$]')";

また、ACCESS テーブルから Excel に直接選択することもできます

 //Select the ACCESS Table INTO an Excel Spreadsheet
            try
            {
                //SELECT INTO command                
                string cnStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + AccfilePath +
                   ";Persist Security Info=False";

                ConnOpen(cnStr);

                using (connectionToDatabase)
                {
                    //Give the Export Table (destination) a Name
                    //baseTblName = dt.TableName;

                    //Generate the SQL string to SELECT * INTO the NEW table in destination
                    string selectcmd = "SELECT * INTO [Excel 12.0;Database="+ExfilePath+"]." + tblName + " FROM " + tblName;


                    using (OleDbCommand createCmd = new OleDbCommand(selectcmd, connectionToDatabase))
                    {
                        createCmd.ExecuteNonQuery();
                    }

                    ConnClose();
                }
            }
4

1 に答える 1

1

64ビットのためテストできません.OLEは一般的にあなたのマシンで動作しているので、これはうまくいくはずです.

INSERT INTO OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
'Excel 12.0;Database=C:\temp\Mappe1.xlsx;', 
'SELECT * FROM [Tabelle1$]') 
SELECT *  FROM ADDR
于 2012-11-01T23:11:42.307 に答える