Вероятность сбоя копирования / вставки из datagridview в Excel в будущих версиях excel / .net?

#c# #excel #datagridview

#c# #excel #datagridview

Вопрос:

Если я создал приложение, которое ожидает, что пользователь будет использовать функциональность копирования-вставки из datagridview в excel (в виде простого экспорта), есть ли у меня большой риск, что это больше не будет работать / давать странное поведение в будущих сборках .net / версий excel?

Ответ №1:

Согласно этой статье MSDN о копировании данных из DataGridView , элемент управления установит в буфер обмена как строковые данные, разделенные табуляцией, так и таблицу HTML, представляющую скопированные данные. Поскольку это относительно стандартные форматы, а также относительно стандартная практика обмена данными, вы должны быть в безопасности.

Конечно, никто не может с уверенностью сказать, что Microsoft будет делать в будущих версиях своих продуктов, поэтому всегда есть шанс, что позже что-то сломается. Тем не менее, Microsoft довольно хороша в обеспечении достаточной обратной совместимости.

Ответ №2:

Всегда существует риск полагаться на clipboard для реализации экспорта:

Я бы не сказал, что он большой, но вы фактически напрашиваетесь на проблемы при экспорте таким образом — в зависимости от того, что установлено в системе (например, какое-нибудь фоновое приложение для просмотра буфера обмена) или разных версий Excel или использования вашего приложения в ситуации с сервером терминалов и т.д. — список вещей, которые могут пойти не так, «бесконечен», ИМХО.

Использование какого-либо механизма для записи реального файла (XLS или XLSX) — это действительно правильный путь.

Существует несколько бесплатных и коммерческих библиотек (для которых не требуется присутствие Excel) для записи файлов Excel (некоторые могут даже экспортировать содержимое DataGridView менее чем с 10 строками кода!):

Вы даже можете экспортировать в «формате Excel-HTML» (пример исходного кода и документация MS).

Ответ №3:

Да, в некотором смысле вы всегда подвергаетесь такому риску, когда предполагаете, что определенная функциональность сторонней программы останется неизменной. Однако Microsoft долгое время поддерживала обратную совместимость своего программного обеспечения, поэтому, возможно, в следующем году или около того эта функция внезапно не будет удалена.

Если вы должны оставаться совместимыми, используйте другой метод для обмена данными.