Вероятность копирования / вставки из datagridview, чтобы прервать Excel в будущих версиях Excel / .net? - PullRequest
2 голосов
/ 09 ноября 2011

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

Ответы [ 3 ]

3 голосов
/ 09 ноября 2011

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

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

2 голосов
/ 09 ноября 2011

В реализации экспорта всегда есть риск, полагаясь на буфер обмена:

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

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

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

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

1 голос
/ 09 ноября 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...