|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
06.11.2015, 21:21 | #21 |
Пользователь
Регистрация: 12.11.2008
Сообщений: 55
|
Ругнулся, зла не хватает на добрых людей... Одно понятно: решения нет и не будет. Иначе бы просто дали код. А не пытались отвечать, даже не открывая среду программирования.
Последний раз редактировалось AndrzejX; 06.11.2015 в 21:28. |
07.11.2015, 10:37 | #22 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Все с тобой понятно.
Откланиваюсь и желаю удачи в поисках.
I'm learning to live...
|
07.11.2015, 12:00 | #23 |
Пользователь
Регистрация: 12.11.2008
Сообщений: 55
|
Виноват, виноват... Понимаю. Тем не менее, путём тасования веб-страниц и компилирования всего что увидел, нашёл решение:
Код:
|
07.11.2015, 12:11 | #24 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
https://msdn.microsoft.com/en-us/lib.../ff194464.aspx
I'm learning to live...
|
|
07.11.2015, 13:04 | #25 |
Пользователь
Регистрация: 12.11.2008
Сообщений: 55
|
Да! Получилось. Таким образом, одна из проблем в кодировке. При передаче строковых параметров нужно преобразовывать:
Код:
Sheet.Cells.SpecialCells(xlCellType LastCell, EmptyParam).Activate; Закомментировал. Работает! Как в тестовом (формат .xlsx) так и в рабочем (формат .xls) файле. Значит эта строка лишняя. И в непонятной константе const xlCellTypeLastCell = 11; нет необходимости. Одна проблема пока остаётся. Кириллические символы ни в имени, ни в тексте файла не допускаются. Избыточными оказались также uses Variants; и Excel, Books, Sheet : {Ole}Variant; Таким образом, окончательный вариант процедуры для чтения региона ColCount столбцов RowCount строк выглядит так: Код:
Последний раз редактировалось Stilet; 07.11.2015 в 14:17. |
07.11.2015, 14:19 | #26 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Цитата:
I'm learning to live...
|
||
11.11.2015, 10:50 | #27 |
Пользователь
Регистрация: 12.11.2008
Сообщений: 55
|
Было дело, я тут на форуме несколько лет назад даже вопрос задавал, почему после Excel.Quit сам процесс Excel не закрывается, ответ - требуется Excel.Unassigned. Но тут вижу что Excel.Quit достаточно - в списке процессов процесс Excel больше не присутствует. Что, почему, неясно, но факт. А насчёт проверок, то конечно, лучше всё заключить в try/finally.
А заглянул я сюда в эту тему для ещё небольшого уточнения процедуры чтения. Оказывается, объект Matrix обязан быть квадратным! При попытке чтения произвольного, не квадратного региона происходит ошибка. Поэтому нужно использовать максимальное значение из ColCount и RowCount. При этом, массив Region не обязан быть квадратным. Ну, вот так примерно: Код:
Последний раз редактировалось AndrzejX; 11.11.2015 в 11:04. |
11.11.2015, 13:19 | #28 |
Форумчанин
Регистрация: 28.07.2007
Сообщений: 361
|
Попробуйте fpSpreadSheet, в отличие от OLE это кросс-платформенный вариант и будет работать без наличия Excel со скоростью даже не сопоставимой при использовании OLE. Работает только с форматом Excel 97-2003. Не знаю кому как, но мне fpSpreadSheet полностью покрывает все нужды для экспорта-импорта информации.
|
16.11.2015, 10:39 | #29 |
Пользователь
Регистрация: 12.11.2008
Сообщений: 55
|
Ну вот пытаюсь узнать в Гугле что-то про то как установить fpSpreadSheet. Результат - найдено "ошибка при установке такая-то", "ошибка ещё другая" и тому подобное. Конкретной информации "НОЛЬ". Да и сама Wiki содержит такое количество оговорок про то что "то не реализовано, здесь будут ошибки" и так далее, что читать и использовать становится страшновато.
Последний раз редактировалось AndrzejX; 16.11.2015 в 10:43. |
17.11.2015, 10:48 | #30 | ||
Форумчанин
Регистрация: 28.07.2007
Сообщений: 361
|
Цитата:
Сам fpSpreadSheet я беру по той ссылке, что указана здесь, в разделе скачать: http://wiki.freepascal.org/FPSpreadsheet/ru Я использую вот эту, по ней доступна версия 1.7 на SourceForge лежит 1.6: Цитата:
Разобраться с компонентами в общем-то труда не составляет, есть примеры, да и по именам функций можно понять что они делают. Работа с компонентами напоминает работу через OLE, создаем книгу, добавляем лист, через лист обращаемся к его ячейкам,пишем в них что нужно, обрисовываем, объединяем и т.д., затем сохраняем книгу. Для чтения XLS создаем книгу, загружаем содержимое из XLS документа, обращаемся к нужному листу, затем в ячейки листа читаем или пишем что нужно. Сам проект fpSpreadSheet содержит 3 пакета: laz_fpspreadsheet - это не визуальные компоненты, как раз те, что нужны для экспорта импорта для замены OLE, их устанавливать не нужно, там нет процедуры register, которая регистрирует компоненты в системе, этот пакет нужно просто скомпилировать. Второй пакет laz_fpspreadsheet_visual содержит визуальные компоненты (сетку и т.д.) с помощью которых можно организовать подобие Excel в своей программе. Можете его установить, если есть желание. После установки в Lazarus на панели появится закладка FPSpreadSheet. И третий пакет laz_fpspreadsheetexport_visual - содержит не визуальные компоненты для экспорта в CSV, RTF, XML, JSON и т.д. про него ни чего не могу сказать, я им не пользовался и он видимо появился недавно. Попробовал прямо сейчас скачать самую последнюю версию из svn, в Lazarus 1.4.4 все скомпилировалось замечательно без ошибок. Если Вы сомневаетесь в функционале, в любом случае, пока не попробуете не узнаете. Я рекомендую fpSpreadSheet обязательно попробовать. Единственное с чем есть проблема - это формулы, но лично мне они не нужны. Последний раз редактировалось Rik; 17.11.2015 в 20:36. |
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Lazarus в Linux - Поиск файлов в папке | BLACK_RAIN | Lazarus, Free Pascal, CodeTyphon | 4 | 08.10.2014 11:23 |
Обработка файлов(lazarus). | Chelovekpredel | Lazarus, Free Pascal, CodeTyphon | 2 | 23.09.2012 12:14 |
Чтение и запись больших excel файлов на c# | Bi0max | C# (си шарп) | 0 | 21.08.2012 20:33 |
Lazarus подключение .so, .dll файлов | Diez_ | Lazarus, Free Pascal, CodeTyphon | 19 | 07.07.2011 21:23 |
Открытие html-файлов в Lazarus | student2008 | Lazarus, Free Pascal, CodeTyphon | 2 | 25.12.2010 11:07 |