Отображение таблицы Excel в WinForms, C#
Последние несколько часов я изо всех сил пытался заставить электронную таблицу / книгу Excel отображаться в форме Windows с помощью Visual Studio 2012, C#. Я могу извлечь данные из рабочей книги и отобразить их в форме, но мне нужны функциональные возможности Excel в приложении, включая такие вещи, как фильтрация, условное форматирование, формулы и т. Д.
Я прочитал довольно много, и, насколько я понимаю, в Visual Studio нет элементов управления для встраивания этих (Office) файлов из-за лицензирования, что имеет смысл. Я нашел решение для отображения файла в WebControl (я уверен, что смогу работать с этим), но когда я пытаюсь загрузить файл Excel в веб-элемент управления, он предлагает пользователю открыть или сохраните файл, и когда выбран "Открыть файл", файл открывается с помощью Microsoft Excel.
Насколько я понимаю, это происходит из-за того, что ContentType (Mime type, Excel ContentType) файла необходимо установить в браузере (мне нужно больше исследовать этот вопрос, поскольку я еще не знаком с этой концепцией).
Ресурсы, которые я использую:
- Логика для сохранения содержимого в файл Excel: EPPlus
- Я работал над следующим проектом, среди прочего: Пример Winforms Excel
Последнее - почти то, чего я хочу достичь, но постоянно просит сохранить или открыть файл, а не просто отображать его в WebControl.
Любая помощь по этому вопросу будет принята с благодарностью.
2 ответа
Существуют коммерческие библиотеки WinForms от DevExpress, Syncfusion и Infragistics. Я использую DevExpress. Я бы предложил их элемент управления WinForms Spreadsheet , вдохновленный Excel. У них также есть API файлов электронных таблиц для .NET и элементы управления пользовательского интерфейса электронных таблиц для ASP.NET, MVC, WPF, ASP.NET Core и Bootstrap.
Вы можете попробовать их бесплатную 30-дневную пробную версию и посмотреть, подходят ли элементы управления DevExpress UI для ваших нужд.
Используйте DataGridView и программируйте функциональность, если у него его нет! ИЛИ Используйте Excel COM для создания экземпляра Excel.