Good evening everyone. I added a DataGridView and Button to the form. The button was supposed to export to Excel . But it gives an error: The object reference does not indicate an object instance.

//Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ DataTable DataTable dt = new DataTable(); //Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ foreach( DataGridViewColumn column in dataGridView.Columns) { dt.Columns.Add(column.HeaderText, column.ValueType); } //Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ строки foreach(DataGridViewRow row in dataGridView.Rows) { dt.Rows.Add(); foreach(DataGridViewCell cell in row.Cells) { dt.Rows[dt.Rows.Count - 1][cell.ColumnIndex] = cell.Value.ToString();//Ошибка здСсь } } //Экспорт Π² Excel string folderPath = @"C:\\Excel\\"; if(!Directory.Exists(folderPath)) { Directory.CreateDirectory(folderPath); } using (XLWorkbook wb = new XLWorkbook()) { wb.Worksheets.Add(dt, "Customers"); wb.SaveAs(folderPath + "DataGridViewExport.xlsx"); } 

    2 answers 2

    Replace cell.Value.ToString() with System.Convert.ToString(cell.Value) .

    • Thank you for helping.))) - Ismoil Muhammadiev

    Most likely, somewhere cell.Value=null? on this cell.Value.ToString() throws an error. You can replace it with string.Format("{0}", cell.Value) or pre-check for null .