Как экспортировать определенный столбец из datagridview в excel
Всем привет. Меня зовут Октавиан Мисро Адрианто.
Простите, если я задам очень простой вопрос, но я новичок в этом деле.
У меня есть Datagridview, который содержит информацию о студентах из базы данных sql server. теперь я хочу экспортировать данные в файл excel. файл был успешно экспортирован, но то, что я пытаюсь сделать, - это экспортировать определенные столбцы или, возможно, когда пользователь нажимает кнопку экспорта, появляется форма опции, в которой пользователь может выбрать, какой столбец он хочет экспортировать.
у кого-нибудь есть идея о том, как это сделать?
Что я уже пробовал:
Вот мой код
private void btnExcel_Click(object sender, EventArgs e) { Cursor.Current = Cursors.WaitCursor; { try { Microsoft.Office.Interop.Excel._Application app = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Interop.Excel._Workbook workbook = app.Workbooks.Add(Type.Missing); Microsoft.Office.Interop.Excel._Worksheet worksheet = null; app.Visible = true; worksheet = workbook.Sheets["Sheet1"]; worksheet = workbook.ActiveSheet; worksheet.Name = "Database Siswa"; //lokasi untuk menyimpan file Excel SaveFileDialog saveDialog = new SaveFileDialog { Filter = "Excel files (*.xlsx)|*.xlsx|All files (*.*)|*.*", FilterIndex = 2 }; if (saveDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { workbook.SaveAs(saveDialog.FileName); MessageBox.Show("Data telah berhasil dieksport", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); } try { for (int i = 0; i < dataGridViewSiswa.Columns.Count; i++) { worksheet.Cells[1, i + 1] = dataGridViewSiswa.Columns[i].HeaderText; } for (int i = 0; i < dataGridViewSiswa.Rows.Count; i++) { for (int j = 0; j < dataGridViewSiswa.Columns.Count; j++) { //milih kolom mana yang mau dieksport if (dataGridViewSiswa.Rows[i].Cells[j].Value != null) { worksheet.Cells[i + 2, j + 1] = dataGridViewSiswa.Rows[i].Cells[j].FormattedValue.ToString(); } else { worksheet.Cells[i + 2, j + 1] = ""; } } } } catch (System.Exception ex) { MessageBox.Show(ex.Message); } finally { app.Quit(); workbook = null; worksheet = null; } } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } } }