0
我想從SQL Server表中直接選擇一個空的Excel電子表格。SELECT * INTO - > Excel工作表使用SQL Server 2008
我可以從電子表格中選擇另一個SQL Server表(請參閱下面的示例)。
我可以直接從ACCESS中選擇一個空的電子表格(請參閱下面的示例)。
但我找不到從SQL Server直接選擇到空電子表格的方式。 (我通過導入電子表格操縱大量遺留數據,操縱數據多次,然後我需要將它導出供其他需要csv文件的程序使用。現在我必須創建一箇中間步驟來拉動它進入ACCESS以將其重新轉移到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();
}
}
我得到這個錯誤:提供的值的列名或數量與表定義不匹配。 – cjjeeper
我認爲這回溯到SELECT * INTO與INSERT INTO。 INSERT期望現有的表。 – cjjeeper
對不起,正如我告訴過你的,我再也不能測試了,我的環境是一個完整的64位(Office 32位)。我可以在辦公室明天嘗試。也許同時這將有助於? http://blog.waynesheffield.com/wayne/code-library/ad-hoc-querying/#codesyntax_5 – bummi