2009-07-06 7 views
5

私が作成しているC#プログラムの一部として、以下を含む1つのワークブックを生成する必要があります。 2つの異なるワークシートと、何度も何回も制作できる第3のワークシートは、これを行う最も効果的な方法は何ですか?テンプレートを使用する方法を検討しましたが、特定のワークシートを繰り返して、他のワークシートを一度しか表示しない方法がわかりません。助けやアドバイスをいただければ幸いです。Excelでテンプレートを使用するC#

+0

http://stackoverflow.com/questions/193092/c-how-to-add-excel-worksheet-programatically-office-xp-2003 – SwDevMan81

+0

返信いただきありがとうございます。ワークシートをワークブックに追加する方法、私の難しさは、すでに書式設定していたワークシートを追加することでした。テンプレートがすでに使用されている場合は、おそらくテンプレートです。 –

答えて

1

簡単な方法は、テンプレートのワークブックを3つのワークシートで作成することです。次にそれをコピーしてください。両方を開き、ワークシート番号3を必要に応じて新しいワークシートとして作業ワークブックに再コピーします。

は、コメントへの返信

スプレッドシートギアやのAspose細胞のような私たちが.NETコンポーネント製品でExcelエンジンがいくつかあります。しかし、アプリケーションがWindowsフォームベースで、アプリケーションの実行が保証されているオフィスであれば、オフィスオートメーションを使用できます。 Webサーバー上でOfficeオートメーションを法的に使用することはできませんが、クライアント・デスクトップ上と同様にWebサーバー上で可能です。私はasposeセルを使いました。それは非常に使いやすく、スプレッドシートのギアよりも少し高価ですが、スプレッドシートギアも良い評判を持っています。これらのコンポーネントの両方は、Excelで何かを行う方法に関する非常に良いドキュメントを持っています。しかし、Excelを使用してオフィスオートメーションを使いたい場合は、c#またはvb.netからExcelを正しく閉じる方法のWeb上のサンプルコードを探してください。それを適切に閉じるためのいくつかのトリックがあります。

+0

最初に返信いただきありがとうございます。私はそれが最善の方法であるかどうかわからなかったが、それについて考えていた。 C#でExcelシートを作成するための優れたリソースを知っていますか?私が見つけたリソースはかなり貧弱です。 –

+0

上記の私の編集を参照してくださいまた、オフィスオートメーションを使用してhttp:// msdnを使用することができます。apiリファレンスとしてmicrosoft.com/en-us/library/aa272268(office.11​​).aspx – gjutras

+0

+1:これは私がいつもそれをする方法です。 – RBarryYoung

0

には、ワークシート全体またはワークブック間でワークシート全体をコピーできるISheet.CopyAfter/CopyBeforeメソッドがあります。

あなたはスプレッドシートギア/エクセルのグラフサンプルは、サンプル・ページhereを報告して複数のワークシートへのチャートでワークシート内の単一のワークシートに複数回の複製の例を見ることができます。

免責事項:私はテンプレートを使用して前にこれを行っているスプレッドシートギア社

0

を所有しています。私はあなたが変更したくない最初の2つのワークシートをテンプレートxlsを作成し、次にワークシートが必要なので、ワークブックの最後にコピーできる3番目のワークシートを追加します。

3枚目のワークシートがどれだけ必要なのか分かっている場合は、最後にコピーして3番目のテンプレートを削除してください。あなたがわからない場合

 ExcelTemplateManager t = new ExcelTemplateManager(template_path, log_path); 
    t.CopyWorksheetToEnd(3); 
    t.CopyWorksheetToEnd(3); 
    t.RemoveAtIndexWorksheet(3); 
    t.SetSomeValue(3); 
    t.SetSomeValue(4); 
    t.Close(); 

、その後、作業が完了したときに、その後、ちょうど第三のワークシートのテンプレートを削除し、必要に応じて最後にそれをコピーするために周りのテンプレートを保持します。

 ExcelTemplateManager t = new ExcelTemplateManager(template_path, log_path); 
    t.CopyWorksheetToEnd(3); 
    t.SetSomeValue(4); 
    t.CopyWorksheetToEnd(3); 
    t.SetSomeValue(5); 
    t.RemoveAtIndexWorksheet(3); 
    t.Close(); 

Microsoft.Office.Interop.Excel dllを使用してExcelTemplateMangerクラスを作成しました。基本的な考え方は、テンプレートのExcelファイルのコピーを作成し、そのコピーを処理することです。その部分を設定するのに助けが必要な場合はお知らせくださいが、あまりにも悪いはずです。

+0

あなたのテンプレートマネージャーがどのように見えるか教えてください。私はあなたがどのようにテンプレートを設定しているか見る必要があります – user236215

関連する問題