sql >> データベース >  >> RDS >> Sqlserver

T-SQL:新しい Excel ファイルにエクスポート

    これは、SQL から Excel にエクスポートするための最良の投稿です:

    http://www.sqlteam.com/forums/topic.asp?TOPIC_ID =49926

    ユーザー madhivanan からの引用 、

    DTS とエクスポート ウィザードを使用する以外に、このクエリを使用して SQL Server2000 から Excel にデータをエクスポートすることもできます

    テーブル列のヘッダーと同じヘッダーを持つ testing という名前の Excel ファイルを作成し、これらのクエリを使用します

    1 SQL Server テーブルから既存の EXCEL ファイルにデータをエクスポート

    insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\testing.xls;', 'SELECT * FROM [SheetName$]') select * from SQLServerTable  

    2 Excel から新しい SQL Server テーブルにデータをエクスポート

    select * into SQLServerTable FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\testing.xls;HDR=YES', 'SELECT * FROM [Sheet1$]' )  

    3 Excel から既存の SQL Server テーブルにデータをエクスポート (編集済み)

    Insert into SQLServerTable Select * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\testing.xls;HDR=YES', 'SELECT * FROM [SheetName$] ')  

    4 事前に EXCEL ファイルを作成せず、データをエクスポートしたい場合は、

    EXEC sp_makewebtask @outputfile ='d:\testing.xls', @query ='Select * from Database_name..SQLServerTable', @colheaders =1, @FixedFont=0,@lastupdated=0,@resultstitle ='テストの詳細'  

    (これで、表形式のデータを含むファイルを見つけることができます)

    5 見出し (列名) を付けて新しい EXCEL ファイルにデータをエクスポートするには、次の手順を作成します。

    create procedure proc_generate_excel_with_columns( @db_name varchar(100), @table_name varchar(100), @file_name varchar(100))as -- 列名をレコードセットとして生成 declare @columns varchar(8000), @sql varchar (8000), @data_file varchar(100)select @columns=coalesce(@columns+',','')+column_name+' as '+column_name from information_schema.columnswhere [email protected]
     _nameselect @columns=''''''+replace(replace(@columns,' as ',''''' as '),',',',''''') -- ダミー ファイルを作成してhave actual dataselect @data_file=substring(@file_name,1,len(@file_name)-charindex('\',reverse(@file_name)))+'\data_file.xls' -- 渡された EXCEL ファイルセット @ に列名を生成しますsql='exec master..xp_cmdshell ''bcp " select * from (select 'example@sqldat .com
     +') as t" queryout "'[email protected]
     _name+'" -c'''exec(@sql) -- ダミー ファイルセットにデータを生成 @sql='exec master..xp_cmdshell ''bcp "select * from '[email protected]
     _name+'..'[email protected]
     _name+'" queryout "'[email protected]
     _file+'" -c'''exec(@sql) -- ダミー ファイルを渡された EXCEL ファイルセットにコピー @sql='exec master..xp_cmdshell ''type '[email protected]
     _file+'>> "'[email protected]
     _name+'"'''exec(@sql) -- ダミー ファイル セットの削除 @sql='exec master..xp_cmdshell ''del '[email protected]
     _file+''''exec(@sql)  

    プロシージャを作成したら、データベース名、テーブル名、およびファイル パスを指定して実行します。

    EXEC proc_generate_excel_with_columns 'your dbname', 'your table name','your file path'  

    なんと 29 ページにもなりますが、それは、他の人がさまざまな方法を示しているだけでなく、その方法についてこのような質問をしている人がいるからです.

    そのスレッドを完全にたどり、人々が尋ねたさまざまな質問とそれらがどのように解決されたかを見てください.ざっと目を通すだけでかなりの知識を習得し、その一部を使用して期待される結果を得ることができました.

    単一セルを更新するには

    そこのメンバーでもある Peter Larson は次のように投稿しています。 Excel ファイルへのエクスポートとインポートができるのは素晴らしいことですが、単一セルの更新はどうですか?それともセルの範囲ですか?

    これは、それを管理する方法の原則です

    update OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=c:\test.xls;hdr=no', 'SELECT * FROM [Sheet1$b7:b7]') f1 =-99 に設定  

    これを使用して数式を Excel に追加することもできます:

    update OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=c:\test.xls;hdr=no', 'SELECT * FROM [Sheet1$b7:b7]') f1 ='=a7+c7' を設定  

    T-SQL を使用した列名でのエクスポート

    メンバーの Mladen Prajdic も、これを行う方法に関するブログ エントリを持っています ここ

    参照:www.sqlteam.com (ちなみに、これは、SQL Server をさらに活用したいと考えているすべての人にとって、優れたブログ/フォーラムです)。エラー参照には これ

    発生する可能性のあるエラー

    次のエラーが発生した場合:

    次にこれを実行します:

    sp_configure '詳細オプションを表示', 1;GORECONFIGURE;GOsp_configure 'アドホック分散クエリ', 1;GORECONFIGURE;GO  

    1. UTF-8エンコーディングを使用してMySQLからExcelにデータをエクスポートする

    2. t-sql selectは、年の範囲内のすべての月を取得します

    3. ClojureからMySQLデータベースに接続するにはどうすればよいですか?

    4. MySQLNonTransientConnectionException:データベースサーバーへの接続を作成できませんでした