Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Delphi сохранить RichEdit как Excel

Автор вопроса: Dave AlbertОтветов: 4

Как бы вы сохранили текст TRichedit в файл Excel?

У меня есть данные, разделенные вертикальной вкладкой № 9, и если я сохраню их в .xls, они откроются, но я хотел бы избавить пользователей от необходимости сохранять их снова как excel после их открытия.

Спасибо, Дэйв Альберт.

delphi

Ответы

Ответ 1 · рейтинг 2 · Marshall Fryman

Есть несколько способов сделать это. Ваш вопрос не очень точен в отношении того, с какими данными вы работаете, поэтому вы должны знать, что в Excel могут быть ограничения (особенно в зависимости от версии Excel) для отображения обширных данных RichEdit, если вы не используете текстовое поле. Поскольку затем вы говорите, что у вас есть данные с разделителями, я предполагаю, что на самом деле это табличная структура, которая не содержит изображений и тому подобного. Следуя этому предположению, вы можете использовать:

  • OpenOffice как решение, как упоминает skamradt. Вы должны знать, что это не ActiveX и использует, IMO, плохо документированный интерфейс OLE. Если вы пойдете этим путем, то обнаружите, что сайт Эндрю Питоньяка действительно помогает. Вам также может понадобиться Delphi OO образцы Бернарда Марселли из SourceForge как хорошая отправная точка.
  • Используйте Excel в качестве объекта автоматизации OLE. Есть много примеров того, как это сделать. Одно руководство, которое может быть похоже на то, что вам нужно, находится здесь. Вероятно, это самое простое решение, так как вы можете открыть данные с вкладками с помощью автоматизации, а затем выполнить команду "Сохранить как".
  • Используйте что-то другое, кроме RichEdit. Например, у DevExpress есть продукт сетки, который поставляется с конвертером Excel. Excel - довольно распространенная цель для определенных типов компонентов, особенно в приобретенных пакетах, но я не уверен, что это приемлемо для вашего проекта.

Ответ 2 · рейтинг 1 · skamradt

Я бы рассмотрел возможность использования формата office open xml. Его также довольно легко программировать, и он позволит вам максимально контролировать свой вывод. Хорошей ссылкой будет веб-сайт OpenXML Developer.

Ответ 3 · рейтинг 1 · Argalatyr

Я бы не сохранял текст с разделителями табуляции с расширением файла xls - это кладж.

Я считаю, что сохранение табличных данных в формате с разделителями-запятыми работает хорошо, и часто использую это решение по следующим причинам:

  • Если Excel установлен, расширение файла .csv обычно ассоциируется, поэтому двойной щелчок работает без "подделки" расширения файла.
  • Если Excel не установлен или не связан с .csv, у пользователя может быть другая программа, связанная с расширением .csv, и это решение все равно будет работать.

Ответ 4 · ajob

Взгляните на компонент XLSReadWrite (http://www.axolot.com/components/xlsrwii20.htm). Он предоставляет API, с помощью которого вы можете сохранять напрямую в файлы xls без необходимости установки Excel или каких-либо внешних зависимостей.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы