2013-08-09 5 views
0

Я следую учебному курсу «Экспорт данных из базы данных sql-сервера, чтобы Excel в wpf». Теперь я могу успешно выполнить эту функцию. Но в экспортированном файле Excel нет имен столбцов (заголовки столбцов базы данных, такие как CustomerId, CustomerName, city, почтовый индекс, телефонNo ...)
Exported Excel.Как отобразить заголовки столбцов в Экспортированном Excel

Как я могу получить эту функцию? Также, как я могу открыть диалог SaveAs? Благодарю. Ниже мой код:

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

ответ

0

Я не специалист в этом, но я считаю, что вы можете использовать символ подчеркивания (_) в Range объекта, чтобы выбрать или изменить заголовок столбца:

xlWorkSheet.Range["A1", _].Value2 = "Heading for first column"; 
+0

Спасибо за ваш быстрый ответ. но он имеет ошибки в символе подчеркивания (_), когда я использую ваш код в приложении. – DanielXu

+0

Можете ли вы предоставить мне образец метода для экспорта данных с сервера sql, чтобы преуспеть в wpf. Я провел много исследований, но только нашел это полезным. спасибо большое – DanielXu

+0

Извините, у меня нет моего примера кода, и моя память не так хороша, но я считаю, что заголовки столбцов просто обрабатываются как обычные ячейки. Взгляните на [Установить заголовок в Excel для рабочего листа 2] (http://stackoverflow.com/questions/12742824/set-header-in-excel-for-worksheet-2) для получения дополнительной справки. – Sheridan