テンプレートに書式設定された SQL クエリの結果を Excel にエクスポートしたいと考えています。
基本的に、ユーザーがデータ行をクリックすると、その特定のパラメーターに対してクエリが実行され、Excel ファイルに保存するオプションがユーザーに与えられます。
- このデータを Excel テンプレートに挿入する方法を教えてください。
- キャンセルされたファイルが保存されない場合に、Excel ファイルを場所に保存せずにユーザーにプロンプトを表示することはできますか?
乾杯
明細書
.xlsではなく、クエリによって返された結果から実行時にC#で.csvファイルを作成することをお勧めします
.csvファイルはExcelで開くことができるため、最後にアプリケーションとしてExcelを引き続き使用できます。
csvファイルが作成されたら、次のようにExcelで開くことができますSystem.Diagnostics.Process.Start("yourExcelFile.xls");
また、このリンクを参照してください。したがって、AutomationofOfficeの使用はお勧めしませんでした。
http://support.microsoft.com/kb/257757から抜粋した段落Microsoftは現在、無人の非対話型クライアントアプリケーションまたはコンポーネント(ASP、ASP.NETを含む)からのMicrosoft Officeアプリケーションの自動化を推奨しておらず、サポートしていません。 、DCOM、およびNTサービス)。Officeをこの環境で実行すると、Officeが不安定な動作やデッドロックを示す可能性があるためです。
通常のソリューションを使用して、SQLサーバーからExcelにデータを取得します(行と列として)が、返されたデータをテンプレートとは異なるワークシートに入れます。
http://blogs.office.com/b/microsoft-excel/archive/2010/06/07/running-a-sql-stored-procedure-from-excel-no-vba.aspx
http://codebyjoshua.blogspot .com.au/2012/01/get-data-from-sql-server-stored.html
データが Excel に取り込まれたら、テンプレート ワークシートで、各データ項目のデータ シートへのリンクを使用するだけです ('=Sheet2!A6')。
h番目のマケレックス
このようなことを行うには、Excel シートの背後に VBA コードを記述することをお勧めします (Alt F11 を押すと、コーディング ウィンドウが表示されます)。
次に、ストアド プロシージャを呼び出すコードを記述します (下のリンクの VBA サンプル)。
http://support.microsoft.com/kb/185125
データを取得したら、シートに入力するのではなく、直接ファイルに保存することは難しくありません。