Ошибка при сохранении 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();
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д