Я следую учебному курсу «Экспорт данных из базы данных sql-сервера, чтобы Excel в wpf». Теперь я могу успешно выполнить эту функцию. Но в экспортированном файле Excel нет имен столбцов (заголовки столбцов базы данных, такие как CustomerId, CustomerName, city, почтовый индекс, телефонNo ...)
.Как отобразить заголовки столбцов в Экспортированном 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();
}
}
Спасибо за ваш быстрый ответ. но он имеет ошибки в символе подчеркивания (_), когда я использую ваш код в приложении. – DanielXu
Можете ли вы предоставить мне образец метода для экспорта данных с сервера sql, чтобы преуспеть в wpf. Я провел много исследований, но только нашел это полезным. спасибо большое – DanielXu
Извините, у меня нет моего примера кода, и моя память не так хороша, но я считаю, что заголовки столбцов просто обрабатываются как обычные ячейки. Взгляните на [Установить заголовок в Excel для рабочего листа 2] (http://stackoverflow.com/questions/12742824/set-header-in-excel-for-worksheet-2) для получения дополнительной справки. – Sheridan