Почему я не могу открыть файл excel в C#?
у меня есть вывод, но когда я попытался нажать на кнопку Открыть и выбрать нужный мне файл excel, файл не может быть открыт...
и вот что я получаю :
Необработанное исключение типа "System.NullReferenceException" произошло в myproject.exe
Дополнительная информация: ссылка на объект не установлена на экземпляр объекта.
точка входа процедуры ucrtbase. terminate не может быть расположена в библиотеке динамических ссылок api-ms-win-crt-runtime-/1-1-0.dll.
+ $exception {System.NullReferenceException: ссылка на объект не установлена на экземпляр объекта.
в моем проекте.Form1.btnopen_Click(отправитель объекта, EventArgs e) in c:\Users\toshiba\Documents\Visual Studio 2012\Projects\myproject\myproject\Form1.cs: строка 33
в системе.Окна.Формы.Контроль.OnClick(EventArgs e)
в системе.Окна.Формы.Кнопка.OnMouseUp(MouseEventArgs mevent)
в системе.Окна.Формы.Контроль.WmMouseUp(Message& m, кнопка MouseButtons, Int32 клика)
в системе.Окна.Формы.Контроль.WndProc (Message& m)
в системе.Окна.Формы.ButtonBase.WndProc (Message& m)
в системе.Окна.Формы.Кнопка.WndProc (Message& m)
в системе.Окна.Формы.Контроль.ControlNativeWindow.WndProc (Message& m)
в системе.Окна.Формы.Родное окно.DebuggableCallback(hwnd элемента указателя IntPtr, int32 и глутамат натрия, указателя IntPtr параметр wparam, указателя IntPtr lparam должен)
в системе.Окна.Формы.Небезопасные методы.DispatchMessageW(MSG& msg)
в системе.Окна.Формы.Приложение.ComponentManager.Система.Окна.Формы.Небезопасные методы.IMsoComponentManager.FPushMessageLoop(dwComponentID типа int32, int32 и причина, типа int32 pvLoopData)
в системе.Окна.Формы.Приложение.ThreadContext.RunMessageLoopInner(типа int32 причина, ApplicationContext контексте)
в системе.Окна.Формы.Приложение.ThreadContext.RunMessageLoop(типа int32 причина, ApplicationContext контексте)
в моем проекте.Program. Main () in c:\Users\toshiba\Documents\Visual Studio 2012\Projects\myproject\myproject\Program. cs: строка 17
в системе.Домен приложений._nExecuteAssembly(монтаж, string[] аргументы)
в корпорации Microsoft.VisualStudio.Хостингпроцесс.HostProc.RunUsersAssembly()
в системе.Нарезание резьбы.ExecutionContext. Run(ExecutionContext executionContext, ContextCallback callback, состояние объекта)
в системе.Нарезание резьбы.ThreadHelper.ThreadStart()} Система.Исключение {System. NullReferenceException}
+ ofd {система.Окна.Формы.OpenFileDialog: Название:, Имя Файла: C:\Users\toshiba\Documents\PRODUCT.xlsx} Система.Окна.Формы.Диалоговое окно openfiledialog
Что я уже пробовал:
using Excel; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Text; using System.Windows.Forms; namespace myproject { public partial class Form1 : Form { public Form1() { InitializeComponent(); } DataSet result; private void btnopen_Click(object sender, EventArgs e) { using (OpenFileDialog opfd = new OpenFileDialog() { Filter = "Excel Workbook|*.xlsx", ValidateNames = true }) { if (opfd.ShowDialog() == DialogResult.OK) { FileStream fs = File.Open(opfd.FileName, FileMode.Open, FileAccess.Read); IExcelDataReader reader = ExcelReaderFactory.CreateBinaryReader(fs); reader.IsFirstRowAsColumnNames = true; result = reader.AsDataSet(); Sheetname.Items.Clear(); foreach (DataTable dt in result.Tables) Sheetname.Items.Add(dt.TableName); reader.Close(); } } } private void Sheetname_SelectedIndexChanged(object sender, EventArgs e) { dataview.DataSource = result.Tables[Sheetname.SelectedIndex]; } } }