Gunta писал(а):
Также прикрутил dll. Теперь можно выбирать стиль создаваемой таблицы.Супер!
Документацию конечно выкладывай.
Ответов: 346
Рейтинг: 28
|
|||
Gunta писал(а): Также прикрутил dll. Теперь можно выбирать стиль создаваемой таблицы.Супер! Документацию конечно выкладывай. |
|||
карма: 2 |
|
Ответов: 869
Рейтинг: 186
|
|||
envoy_sky писал(а): Документацию конечно выкладывайhttps://disk.yandex.ru/d/-G-a7N5vP9F1kA Также добавил ссылку в предыдущий пост. |
|||
карма: 18 |
|
Ответов: 5227
Рейтинг: 587
|
|||
Если бы изначально штатный пакет FPC не кастрировали из за ~100кб лишнего веса к exe (выкинули типа ненужные модули) то палитра HiAsm давно бы была другой. Вот от такого решения годами прикручиваем всякого рода костыли
![]() |
|||
карма: 4 |
|
Ответов: 5227
Рейтинг: 587
|
|||
Gunta, кстати с dll то я вроде уже выкладывал тут где то ещё одну свою поделку или ты что то пропустил
![]() Редактировалось 3 раз(а), последний 2022-05-19 13:28:40 |
|||
карма: 4 |
|
Ответов: 869
Рейтинг: 186
|
|||
andrestudio писал(а): выкладывал тут где то ещё одну свою поделку или ты что то пропустил Нет, не пропустил. Даже немного поэкспериментировал. Схему на всеобщее обозрение выкладывать не буду. ![]() Редактировалось 1 раз(а), последний 2022-05-19 07:51:52 |
|||
карма: 18 |
|
Ответов: 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] [375] |
Ответов: 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 |