Как бы вы сохранили текст TRichedit в файл Excel?
У меня есть данные, разделенные вертикальной вкладкой № 9, и если я сохраню их в .xls, они откроются, но я хотел бы избавить пользователей от необходимости сохранять их снова как excel после их открытия.
Спасибо, Дэйв Альберт.
Ответ 1 · рейтинг 2 · Marshall Fryman
Есть несколько способов сделать это. Ваш вопрос не очень точен в отношении того, с какими данными вы работаете, поэтому вы должны знать, что в Excel могут быть ограничения (особенно в зависимости от версии Excel) для отображения обширных данных RichEdit, если вы не используете текстовое поле. Поскольку затем вы говорите, что у вас есть данные с разделителями, я предполагаю, что на самом деле это табличная структура, которая не содержит изображений и тому подобного. Следуя этому предположению, вы можете использовать:
- OpenOffice как решение, как упоминает skamradt. Вы должны знать, что это не ActiveX и использует, IMO, плохо документированный интерфейс OLE. Если вы пойдете этим путем, то обнаружите, что сайт Эндрю Питоньяка действительно помогает. Вам также может понадобиться Delphi OO образцы Бернарда Марселли из SourceForge как хорошая отправная точка.
- Используйте Excel в качестве объекта автоматизации OLE. Есть много примеров того, как это сделать. Одно руководство, которое может быть похоже на то, что вам нужно, находится здесь. Вероятно, это самое простое решение, так как вы можете открыть данные с вкладками с помощью автоматизации, а затем выполнить команду "Сохранить как".
- Используйте что-то другое, кроме RichEdit. Например, у DevExpress есть продукт сетки, который поставляется с конвертером Excel. Excel - довольно распространенная цель для определенных типов компонентов, особенно в приобретенных пакетах, но я не уверен, что это приемлемо для вашего проекта.
Ответ 3 · рейтинг 1 · Argalatyr
Я бы не сохранял текст с разделителями табуляции с расширением файла xls - это кладж.
Я считаю, что сохранение табличных данных в формате с разделителями-запятыми работает хорошо, и часто использую это решение по следующим причинам:
- Если Excel установлен, расширение файла .csv обычно ассоциируется, поэтому двойной щелчок работает без "подделки" расширения файла.
- Если Excel не установлен или не связан с .csv, у пользователя может быть другая программа, связанная с расширением .csv, и это решение все равно будет работать.
Ответ 4 · ajob
Взгляните на компонент XLSReadWrite (http://www.axolot.com/components/xlsrwii20.htm). Он предоставляет API, с помощью которого вы можете сохранять напрямую в файлы xls без необходимости установки Excel или каких-либо внешних зависимостей.