Я получаю сообщение об ошибке ComException при экспорте данных в Excel. Как я могу плавно экспортировать данные списка в Excel, изменив этот код. Я искал решение, но не могу найти подходящий ответ, чтобы это исправить.
Есть идеи, что я делаю не так?
Код
private void btnExport_Click(object sender, EventArgs e)
{
int i = 1,j=0,k=1;
using (SaveFileDialog sfd = new SaveFileDialog() { Filter = "Excel Workbook|*.xlsx", ValidateNames = true })
{
if (sfd.ShowDialog() == DialogResult.OK)
{
Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
/*Workbook wb = app.Workbooks.Add(XlSheetType.xlWorksheet);
Worksheet ws = (Worksheet)app.ActiveSheet;*/
app.Visible = true;
Microsoft.Office.Interop.Excel.Workbook wb = app.Workbooks.Add(Microsoft.Office.Interop.Excel.XlSheetType.xlWorksheet);
Microsoft.Office.Interop.Excel.Worksheet ws = ((Microsoft.Office.Interop.Excel.Worksheet)app.ActiveSheet);
// inserting colums names into cells
foreach (ColumnHeader header in lst.Columns)
{
ws.Cells[1, i] = header.Text;
i++;
}
i = 2;
foreach (ListViewItem item in lst.Items)
{
j = 1;
foreach (ListViewItem.ListViewSubItem lvs in item.SubItems)
{
ws.Cells[i, j] = lvs.Text;
j++;
}
i++;
}
/* wb.SaveAs(sfd.FileName, XlFileFormat.xlWorkbookDefault, Type.Missing, Type.Missing, true, false, XlSaveAsAccessMode.xlNoChange,
XlSaveConflictResolution.xlLocalSessionChanges, Type.Missing, Type.Missing);*/
wb.SaveAs(sfd.FileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing);
wb.Close(false, Type.Missing, Type.Missing);
app.Quit();
app.Quit();
MessageBox.Show("Your Data has been Exported Successfully","Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}