Gunta писал(а):
Также прикрутил dll. Теперь можно выбирать стиль создаваемой таблицы.Супер!
Документацию конечно выкладывай.
Ответов: 306
Рейтинг: 26
|
|||
Gunta писал(а): Также прикрутил dll. Теперь можно выбирать стиль создаваемой таблицы.Супер! Документацию конечно выкладывай. |
|||
карма: 2 |
|
Ответов: 783
Рейтинг: 168
|
|||
envoy_sky писал(а): Документацию конечно выкладывайhttps://disk.yandex.ru/d/-G-a7N5vP9F1kA Также добавил ссылку в предыдущий пост. |
|||
карма: 15 |
|
Ответов: 5227
Рейтинг: 587
|
|||
Если бы изначально штатный пакет FPC не кастрировали из за ~100кб лишнего веса к exe (выкинули типа ненужные модули) то палитра HiAsm давно бы была другой. Вот от такого решения годами прикручиваем всякого рода костыли
|
|||
карма: 4 |
|
Ответов: 5227
Рейтинг: 587
|
|||
Gunta, кстати с dll то я вроде уже выкладывал тут где то ещё одну свою поделку или ты что то пропустил
Редактировалось 3 раз(а), последний 2022-05-19 13:28:40 |
|||
карма: 4 |
|
Ответов: 783
Рейтинг: 168
|
|||
andrestudio писал(а): выкладывал тут где то ещё одну свою поделку или ты что то пропустил Нет, не пропустил. Даже немного поэкспериментировал. Схему на всеобщее обозрение выкладывать не буду. Exsport with elv dll.PNG Редактировалось 1 раз(а), последний 2022-05-19 07:51:52 |
|||
карма: 15 |
|
Ответов: 5227
Рейтинг: 587
|
|||
Gunta, а ну понял тогда, извиняй. У той приблуды недостаток в экспорте в том что все значения становятся строковыми. В своей библиотеке рассчитываю добавить несколько функций чтобы иметь возможность работать с документом, записывать данные в произвольную ячейку произвольной страницы, добавлять удалять страницы. Даже этого будет достаточно что бы иметь возможность работать с шаблонами, которые соответственно могут содержать макросы и т.п
|
|||
карма: 4 |
|
Ответов: 5227
Рейтинг: 587
|
|||
Ну что, StringTableEx становится всё интересней и интересней
Подкинули ей немного точек *onEndLoad=Событие происходит после загрузки документа и выводит в поток список страниц документа XLS|2| *onSelectSheet=Событие происходит после выбора страницы и выдаёт её имя в поток|2| *SheetNames=Содержит имена страниц книги XLS|3|2 *SheetCount=Содержит количество страниц книги XLS|3|1 *ActiveIndex=Содержит индекс активной страницы|3|1 *IdxActive=Индекс для активной страницы|4|1 *doLoadFromIndex=Метод загружает таблицу страницей согласно индексу, индекс передаётся в потоке или с точки IdxActive|1| Теперь можно открывать многостроничные файлы, делать правки на страницах и успешно их сохранять. Как то так... демка с тестовым файлом и схемой https://forum.hiasm.com/getfile/39465 |
|||
карма: 4 |
| ||
файлы: 1 | TestReadXLS4.zip [169.1KB] [326] |
Ответов: 5227
Рейтинг: 587
|
|||
Добавил ещё пару методов, пожалуй уже достаточно
*doAddSheet=Метод добовляет страницу в документ, имя страницы передаётся в потоке|1| *doDeleteSheet=Метод удаляет активную страницу из документа XLS|1| --- Добавлено в 2022-05-20 14:10:12 Не знаю конечно интересно или нет но в методе Add добавил проверку на отсутствие колонок. Если истина то создаются согластно полученной строки Ну как бы ну нет заголовков ну виг с ними, что из за этого типа данные не получать
--- Добавлено в 2022-05-20 14:25:43 Так то библиотека обширна, всё необходимое присутствует Редактировалось 3 раз(а), последний 2022-05-20 14:25:43 |
|||
карма: 4 |
|
Ответов: 5227
Рейтинг: 587
|
|||
Итак, решился я сделать ещё пару компонентов.
Это будет: xReadData: Чтение произвольной строки с данными типа (Integer,Real,String,Images) Произвольное количество нижних точек МТ потока xWriteData: Запись произвольной строки с данными типа (Integer,Real,String,Images) Произвольное количество верхних точек МТ потока Такие файлы будут не обязательны к просмотру и редактированию в офисе а скорей всего могут использоваться как защищённая база данных в приложении. Ночь длинна, можно приступать |
|||
карма: 4 |
|
Ответов: 5227
Рейтинг: 587
|
|||
компоненты сделал
Довольно гибкие штуковины получились. writer Count=Количество столбцов данных XLS документа|1|2 @FileName=Имя файла XLS|2| @Password=Пароль для открытия файла XLS|2| @Row=Индекс строки для чтения методами doSetDataXLS,doSetRowXLS|1|0 @Col=Индекс колонки для чтения методом doSetDataXLS|1|0 @SheetIndex=Индекс страницы при открытии файла|1|0 @IndexStr=Индекс формата Excel типа A1,A2... и т.д. Всегда в приоритете над Row и Col|2|A1 WholeLine=Записать MT поток в строку методом doSetRowXLS независимо от количества точек Count|14|0|False,True WholeColumn=Записать в MT поток в столбец методом doSetColXLS независимо от количества точек Count|14|0|False,True Delimiter=Разделитель для данных получаемых методом doWriteAllData|2|; xReader=Поток открытый xReaderData. Если указан то имя файла,пароль,индекс страницы не требутся|20|(empty)|XlsFile [Methods] doOpenFile=Метод открывает XLS файл для записи|1| doCloseFile=Метод закрывает XLS файл|1| doSetDataXLS=Метод записывает данные в таблицу по адресу Row и Col. Данные передаются в потоке или с первой верхней точки|1| *doSetRowXLS=Метод записывает строк Row. Данные передаются в МТ потоке или с верхних точек|1| *doSetColXLS=Метод записывает колонку Col. Данные передаются в МТ потоке или с верхних точек|1| onSheetNames=Событие происходит после открытия файла и выдаёт список страниц в поток|2| RowCount=Содержит количество строк открытой страницы документа|3|1 ColCount=Содержит количество колонок открытой страницы документа|3|1 reader FileName=Имя файла XLS|2| Password=Пароль для открытия файла XLS|2| Count=Количество столбцов данных XLS документа|1|2 WholeLine=Читать в MT поток всю строку методом doGetRowXLS независимо от количества точек Count|14|0|False,True WholeColumn=Читать в MT поток весь столбец методом doGetColXLS независимо от количества точек Count|14|0|False,True Delimiter=Разделитель для данных получаемых методом doReadAllData|2|; Name=Имя файлового потока для xWriteData|2| [Methods] doOpenFile=Метод открывает XLS файл для чтения|1| doCloseFile=Метод закрывает XLS файл|1| doGetDataXLS=Метод запрашивает данные таблицы из ячейки Row и Col|1| *doGetRowXLS=Метод запрашивает данные таблицы из строки Row|1| *doGetColXLS=Метод запрашивает данные таблицы из колонки Col|1| *doReadAllData=Выводит в цикле на onDataStr все строки таблицы со всеми столбцами|1| *doClear=Метод очищает внутренний буфер данных|1| FileName=Имя файла XLS|4|2 *Password=Пароль для открытия файла XLS|4|2 *SheetIndex=Индекс страницы при открытии файла|4|1 onData=Событие происходит после методов doGetDataXLS, doGetRowXLS и выдает MT поток данные таблицы|2| *onDataStr=Событие происходит после вызова метода doReadAllData и выдаёт в поток строки таблицы, столбцы которых разделены делиметром|2| onSheetNames=Событие происходит после открытия файла и выдаёт список страниц в поток|2| *Row=Индекс строки для чтения методами doGetDataXLS,doGetRowXLS|4|1 *Col=Индекс колонки для чтения методом doGetDataXLS|4|1 IndexStr=Индекс формата Excel типа A1,A2... и т.д. Всегда в приоритете над Row и Col|4|2 в ячейках можно хранить достаточно объёмные данные. Это могут быть html,rtf,txt документы. Стримы делать не стал т.к лучше их хранить в ячейках в Base64,91. т.к таблица она и есть матрица то можно строить в ней различные деревья и т.п списки Короче тут есть где разгуляться на предмет творчества Редактировалось 3 раз(а), последний 2022-05-27 19:27:11 |
|||
карма: 4 |
| ||
Голосовали: | tig-rrr |