Я не могу открыть свой файл excel динамично, и мой лист excel не показывает имя coloumn, как показано в моей таблице SQL.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; using System.Configuration; using Excel = Microsoft.Office.Interop.Excel; namespace WindowsFormsApplication9 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { SqlConnection cnn; string connectionString = null; string sql = null; string data = null; int i = 0; int j = 0; Excel.Application xlApp; Excel.Workbook xlWorkBook; Excel.Worksheet xlWorkSheet; object misValue = System.Reflection.Missing.Value; xlApp = new Excel.Application(); xlWorkBook = xlApp.Workbooks.Add(misValue); xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); connectionString = "Data Source=VISHAL-PC; Initial Catalog=arif; Integrated security=true"; cnn = new SqlConnection(connectionString); cnn.Open(); sql = "SELECT * FROM khan1"; 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 + 2, j + 1] = data; } } xlWorkBook.SaveAs("E:\\Arif khan\\ted.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue); xlWorkBook.Close(true, misValue, misValue); xlApp.Quit(); releaseObject(xlWorkSheet); releaseObject(xlWorkBook); releaseObject(xlApp); MessageBox.Show("Excel file created , you can find the file E:\\Arif khan\\ted.xls"); } 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(); } } } }
Что я уже пробовал:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; using System.Configuration; using Excel = Microsoft.Office.Interop.Excel; namespace WindowsFormsApplication9 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { SqlConnection cnn; string connectionString = null; string sql = null; string data = null; int i = 0; int j = 0; Excel.Application xlApp; Excel.Workbook xlWorkBook; Excel.Worksheet xlWorkSheet; object misValue = System.Reflection.Missing.Value; xlApp = new Excel.Application(); xlWorkBook = xlApp.Workbooks.Add(misValue); xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); connectionString = "Data Source=VISHAL-PC; Initial Catalog=arif; Integrated security=true"; cnn = new SqlConnection(connectionString); cnn.Open(); sql = "SELECT * FROM khan1"; 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 + 2, j + 1] = data; } } xlWorkBook.SaveAs("E:\\Arif khan\\ted.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue); xlWorkBook.Close(true, misValue, misValue); xlApp.Quit(); releaseObject(xlWorkSheet); releaseObject(xlWorkBook); releaseObject(xlApp); MessageBox.Show("Excel file created , you can find the file E:\\Arif khan\\ted.xls"); } 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(); } } } }
Richard MacCutchan
В чем вопрос?
Member 13403292
вопрос в том, как я могу экспортировать execl из базы данных sql с тем же именем coloumn, а лист excel сохранить во время выполнения и открыть также.
Richard MacCutchan
Используйте пространство имен Excel Interop: Microsoft.Офис.Взаимодействие.Пространство имен Excel ()[^]
Member 13403292
можете ли вы мне прислать весь код?
Richard MacCutchan
Нет, конечно, нет. Мы здесь не для того, чтобы делать за вас вашу работу.
Member 13403292
но это был не правильный ответ, который вы прислали мне в комментарии.
Richard MacCutchan
Тогда, пожалуйста, объясните точно, что ваш код делает неправильно.
Member 13403292
мой код работает, но лист excel продукта показывает только данные...не показывает имя столбца . и я хочу добавить некоторую дополнительную функцию, которая при запуске программы автоматически сохранит и откроет лист продукта во время выполнения.