Ошибка при сохранении 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();
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5
Похожие ответы