2012-01-24 20 views
0

私は私が へのデータセットからのデータを送信するために必要なデータを一度エクセルどこでデータセットを持ってはどのようにそこにデータ

  • に直面しています何2つの問題を持っている優れ、保存するためのC#からPARAMTERを送信しますその場所に投棄された私は列ヘッダーを変更する必要が

2彼らは太字にする:レポートヘッダーの上 我々はとして渡す必要があるのC#から名前(従業員の詳細)になります1つのパラメータを渡す必要がありますそれに対するパラメータ。 これまでに渡したパラメータを変更することができます。

例: REPORTNAME:従業員の詳細

Name  EmpID city 
    Arun  11  bangalore 
    Kiran  56  chennai 
    Rahul  23  pune 
+1

あなたの問題にはどのような質問がありますか?コードがありますか? – Feroc

答えて

0

次は動作するはずですが、私はそれをテストしていません。以下のコードの大部分を書いていただき、ありがとうございましたDeborah Kurata

using Excel = Microsoft.Office.Interop.Excel; 
using System.Reflection; 

private void ExportToExcel(DataTable Table, string ReportName, string Filename) 
{ 
    Excel.Application oXL; 
    Excel.Workbook oWB; 
    Excel.Worksheet oSheet; 
    Excel.Range oRange; 

    // Start Excel and get Application object. 
    oXL = new Excel.Application(); 

    // Set some properties 
    oXL.Visible = true; 
    oXL.DisplayAlerts = false; 

    // Get a new workbook. 
    oWB = oXL.Workbooks.Add(Missing.Value); 

    // Get the active sheet 
    oSheet = (Excel.Worksheet)oWB.ActiveSheet ; 
    oSheet.Name = "Report"; 

    int rowCount = 3; 
    foreach (DataRow dr in Table.Rows) 
    { 
     for (int i = 1; i < Table.Columns.Count+1; i++) 
     { 
      // Add the header the first time through 
      if (rowCount==3) 
      { 
       oSheet.Cells[1, i] = Table.Columns[i - 1].ColumnName; 
       rowCount++; 
      } 
      oSheet.Cells[rowCount, i] = dr[i - 1].ToString(); 
     } 
     rowCount++; 
    } 

    // Resize the columns 
    oRange = oSheet.get_Range(oSheet.Cells[3, 1], 
       oSheet.Cells[rowCount, Table.Columns.Count]); 
    oRange.EntireColumn.AutoFit(); 

    // Set report title *after* we adjust column widths 
    oSheet.Cells[1,1] = ReportName; 

    // Save the sheet and close 
    oSheet = null; 
    oRange = null; 
    oWB.SaveAs(Filename, Excel.XlFileFormat.xlWorkbookNormal, 
     Missing.Value, Missing.Value, Missing.Value, Missing.Value, 
     Excel.XlSaveAsAccessMode.xlExclusive, 
     Missing.Value, Missing.Value, Missing.Value, 
     Missing.Value, Missing.Value); 
    oWB.Close(Missing.Value, Missing.Value, Missing.Value); 
    oWB = null; 
    oXL.Quit(); 

    // Clean up 
    // NOTE: When in release mode, this does the trick 
    GC.WaitForPendingFinalizers(); 
    GC.Collect(); 
    GC.WaitForPendingFinalizers(); 
    GC.Collect(); 
} 
関連する問題