2011-11-16 31 views
9

Come creare un file excel con più fogli da DataSet usando C#. Ho creato con successo un file excel con un singolo foglio. Ma non sono in grado di farlo per più fogli.Come creare un file excel con più fogli da DataSet usando C#

saluti Harsh

+0

Suppongo che dipenda da come stai cercando di creare il file excel. Stai cercando @ creando una pagina per tabella nel set di dati? – KreepN

+0

Probabilmente hai cambiato il comportamento predefinito di Excel. Consulta http://stackoverflow.com/questions/8066189/c-sharp-create-excel-workbook-with-1-sheet-by-default – JMax

+0

Quale tecnologia o componente stai utilizzando per il foglio singolo che stai già creando ? –

risposta

15

Ecco una semplice classe C# che crea una cartella di lavoro di Excel programatically e aggiunge due fogli ad esso, e quindi popola entrambi i fogli. Infine, si salva la cartella di lavoro in un file nella directory principale dell'applicazione in modo da poter verificare i risultati ...

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(); 
    } 
} 

Per fare questo, si avrebbe bisogno di aggiungere un riferimento a Microsoft.Office.Interop.Excel al tuo progetto (puoi averlo già fatto da quando stai creando un foglio).

L'affermazione che aggiunge il secondo foglio è ...

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

la '1' argomento specifica un singolo foglio, e può essere di più se si desidera aggiungere più fogli alla volta.

Nota finale: la dichiarazione oXL.Visible = false; dice ad Excel di avviarsi in modalità silenziosa.

+0

Viene visualizzato un errore su oXL.Quit(); ogni volta. Excel Undantagskod: xc0000005 Felförskjutning: 0x000000000000f993. L'errore viene inserito nel registro eventi della macchina. Hai bisogno anche delle arum genti mancanti in C# 4? Non è sufficiente con oWB dinamico = excelApplication.Workbooks.Add(); –

+0

Qualche possibilità di tradurre il tuo messaggio di errore? –

+0

Ottima risposta. molte grazie –

Problemi correlati