2011-11-16 6 views
9

C#を使用してDataSetから複数のシートを含むExcelファイルを作成する方法。私は正常に1枚のシートでExcelファイルを作成しました。しかし、私は複数のシートのためにそれを行うことはできません。C#を使用してDataSetから複数のシートを含むExcelファイルを作成する方法

よろしくここ 過酷

+0

私はあなたがExcelファイルをどのように作成しているかにかかっていると思います。あなたは@データセットのテーブルごとのページを作成していますか? – KreepN

+0

デフォルトのExcelの動作が変更されている可能性があります。 http://stackoverflow.com/questions/8066189/c-sharp-create-excel-workbook-with-1-sheet-by-default – JMax

+0

既に作成している単一のシートに使用しているテクノロジーまたはコンポーネント? –

答えて

15

プログラムでExcelワークブックを作成し、2枚を追加し、その後、両シートを移入する簡単なC#クラスです。あなたは結果を検査できるように最後に、それは

public class Tyburn1 
{ 
    object missing = Type.Missing; 
    public Tyburn1() 
    { 
     Excel.Application oXL = new Excel.Application(); 
     oXL.Visible = false; 
     Excel.Workbook oWB = oXL.Workbooks.Add(missing); 
     Excel.Worksheet oSheet = oWB.ActiveSheet as Excel.Worksheet; 
     oSheet.Name = "The first sheet"; 
     oSheet.Cells[1, 1] = "Something"; 
     Excel.Worksheet oSheet2 = oWB.Sheets.Add(missing, missing, 1, missing) 
         as Excel.Worksheet; 
     oSheet2.Name = "The second sheet"; 
     oSheet2.Cells[1, 1] = "Something completely different"; 
     string fileName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)   
           + "\\SoSample.xlsx"; 
     oWB.SaveAs(fileName, Excel.XlFileFormat.xlOpenXMLWorkbook, 
      missing, missing, missing, missing, 
      Excel.XlSaveAsAccessMode.xlNoChange, 
      missing, missing, missing, missing, missing); 
     oWB.Close(missing, missing, missing); 
     oXL.UserControl = true; 
     oXL.Quit(); 
    } 
} 

これを行うには、あなたがMicrosoft.Office.Interop.Excelへの参照を追加する必要があります...アプリケーションのルートディレクトリ内のファイルに、ブックを保存します(1枚のシートを作成しているので、既にこれを行っている可能性があります)。

セカンドシートがある追加の文...

Excel.Worksheet oSheet2 = oWB.Sheets.Add(missing, missing, 1, missing) 
          as Excel.Worksheet; 

「1」の引数は、単一のシートを指定し、一度に複数のシートを追加したい場合には、より多くのことができます。

最終ノート:ステートメントoXL.Visible = false;サイレントモードで起動するようにExcelに指示します。

+0

oXL.Quit()でエラーが発生しました。毎回。 Excel Undantagskod:xc0000005 Felförskjutning:0x000000000000f993。エラーはマシンのイベントログに記録されます。また、C#4で紛失した武器が必要ですか?動的で十分ではないのですか?oWB = excelApplication.Workbooks.Add(); –

+0

エラーメッセージが翻訳される可能性はありますか? –

+0

すばらしい答え。どうもありがとう –

関連する問題