Ошибка при сохранении dataGridView в Excel файл. - C#
Формулировка задачи:
Хочу сохранить датугридвью в эксель файл. Выдает следующую ошибку. Может я забыл подгрузить какую-нибудь библиотеку?
Да, и еще. На ноуте стоял 2007 офис, я его коряво снес, поставил привычный для себя 2003. При каждом запуске офиса выдается следующее:
нет, конечно, офис работает. но вот всегда такие сообщеньки. что сделать? снести 2003 и установить 2007?
private void сохранитьРезультатыToolStripMenuItem_Click(object sender, EventArgs e) { Microsoft.Office.Interop.Excel.Application XlApp; saveFileDialog1.Filter = "Excel (*.xls)|*.xls"; if (saveFileDialog1.ShowDialog() == DialogResult.OK) { XlApp = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Interop.Excel.Workbook XlWorkbook; XlWorkbook = XlApp.Workbooks.Add(System.Reflection.Missing.Value); Microsoft.Office.Interop.Excel.Worksheet XlWorksheet; XlWorksheet = (Microsoft.Office.Interop.Excel.Worksheet)XlWorkbook.Worksheets.get_Item(1); for (int i = 0; i < dataGridView1.Rows.Count; i++) { for (int j = 0; j < dataGridView1.ColumnCount; j++) { XlApp.Cells[i + 1, j + 1] = dataGridView1.Rows[i].Cells[j].Value; } } //сохранение в книгу XlWorkbook.SaveAs(saveFileDialog1.FileName, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, "", "", false, false, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, false, false, false, false); XlWorkbook.Close(true, saveFileDialog1.FileName, false); XlApp.Quit(); MessageBox.Show("Файл сохранён!!!", "Информация о файле", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } }
Решение задачи: «Ошибка при сохранении dataGridView в Excel файл.»
textual
Листинг программы
private void save(object sender, EventArgs e) { // диалоговое окно var save = new SaveFileDialog { AddExtension = true, DefaultExt = "bin", Filter = @"Текстовые файлы (*.txt)|*.txt|CSV-файл (*.csv)|*.csv|Bin-файл (*.bin)|*.bin", FilterIndex = 2, RestoreDirectory = true }; if (save.ShowDialog() != DialogResult.OK) return; var sw = new StreamWriter(save.FileName, true,Encoding.UTF8); foreach (DataGridViewRow row in dataGridView1.Rows) //запись if (!row.IsNewRow) { var first = true; foreach (DataGridViewCell cell in row.Cells) { if (!first) sw.Write(";"); sw.Write(cell.Value.ToString()); first = false; } sw.WriteLine(); } sw.Close(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д