@aeaeae1

Ссылка на объект не указывает на экземпляр объекта,ошибка.Как исправить?

Здравствуйте! !Подскажите ПОЖАЛУЙСТА В ЧЕМ ПРОБЛЕМА?Выдает ошибку
System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объекта."
result было null.
using (OpenFileDialog ofd = new OpenFileDialog() { Filter = "Excel Files|*.xls;*.xlsx;*.xlsm" })
            {
                if (ofd.ShowDialog() == DialogResult.OK)
                {
 
 
                 
                    FileStream fs = File.Open(ofd.FileName, FileMode.Open, FileAccess.Read);
                    Excel.IExcelDataReader reader = Excel.ExcelReaderFactory.CreateBinaryReader(fs);
                    reader.IsFirstRowAsColumnNames = true;
                    result = reader.AsDataSet();
                    CLEAR.Items.Clear();
                    
                    foreach (DataTable dt in result.Tables)
                    {
                        dt.TableName = "tab";
                        CLEAR.Items.Add(dt.TableName);
 
                    }
                    // dataGridView1.DataSource = dt.DefaultView;
 
                    reader.Close();
 
 
 
                }
            }
 
        }

Вот эта строка
foreach (DataTable dt in result.Tables)
И причем когда xls файл делаю все нормально а когда xlsx выдает ошибку
  • Вопрос задан
  • 888 просмотров
Решения вопроса 2
Ваша библиотека работает только с форматом xls, либо для работы с форматом xlsx используются другие методы. Читайте документацию к вашей библиотеке для работы с Excel.
Ответ написан
Комментировать
vabka
@vabka Куратор тега C#
Токсичный шарпист
Excel.ExcelReaderFactory.CreateBinaryReader(fs)
Работает только с xls
Для работы и с xls и с xlsx надо вызывать
ExcelReaderFactory.CreateReader(stream)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы