0

私はチュートリアル「SQL ServerデータベースからwpfでExcelにデータをエクスポートする」に従っています。これで、機能を正常に達成できます。しかし、エクスポートされた Excel ファイルには、列名 (CustomerId、CustomerName、city、postcode、telephoneNo などのデータベース列ヘッダー) がありません
エクスポートされたエクセル

どうすればこの機能を入手できますか? また、名前を付けて保存ダイアログを開くにはどうすればよいですか? ありがとう。以下は私のコードです:

     private void button1_Click(object sender, RoutedEventArgs e)
    {
    string sql = null;
    string data = null;

    int i = 0;
    int j = 0;

    Microsoft.Office.Interop.Excel.Application xlApp;
    Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
    Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
    object misValue = System.Reflection.Missing.Value;

    xlApp = new Microsoft.Office.Interop.Excel.Application();
    xlWorkBook = xlApp.Workbooks.Add(misValue);
    xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

    SqlConnection cnn = new SqlConnection();
    cnn.ConnectionString = @"Data Source=.\sqlexpress;Initial Catalog=Client;Integrated Security=SSPI;";
    cnn.Open();
    sql = "select * from Customers";
    SqlDataAdapter dscmd = new SqlDataAdapter(sql, cnn);
    DataSet ds = new DataSet();
    dscmd.Fill(ds);

    for (i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
    {
        for (j = 0; j <= ds.Tables[0].Columns.Count - 1; j++)
        {
            data = ds.Tables[0].Rows[i].ItemArray[j].ToString();
            xlWorkSheet.Cells[i + 1, j + 1] = data;
        }
    }


    xlWorkBook.Close(true, misValue, misValue);
    xlApp.Quit();

    releaseObject(xlWorkSheet);
    releaseObject(xlWorkBook);
    releaseObject(xlApp);
}

private void releaseObject(object obj)
{
    try
    {
        System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
        obj = null;
    }
    catch (Exception ex)
    {
        obj = null;
        MessageBox.Show("Exception Occured while releasing object " + ex.ToString());
    }
    finally
    {
        GC.Collect();
    }
}
4

1 に答える 1