Андрей Гайдамака, добрый день. Какая ОС? Не поддерживается WinXP.
«Бритва Оккама» или «Принцип Калашникова»?
20.04.2024 12:14:05
Андрей Гайдамака, добрый день. Какая ОС? Не поддерживается WinXP.
«Бритва Оккама» или «Принцип Калашникова»?
|
|
|
18.04.2024 14:37:59
«Бритва Оккама» или «Принцип Калашникова»?
|
|||||
|
18.04.2024 13:41:33
Не будет там никакого safearrey, это СОМ, не путайте. Советую к ознакомлению.
Изменено:
«Бритва Оккама» или «Принцип Калашникова»?
|
|||||||||
|
18.04.2024 13:20:14
«Бритва Оккама» или «Принцип Калашникова»?
|
|||
|
18.04.2024 10:34:35
У меня ОБЫЧНАЯ выгрузка все заполняет.
Изменено:
«Бритва Оккама» или «Принцип Калашникова»?
|
|||||
|
18.04.2024 10:01:02
Изменено:
«Бритва Оккама» или «Принцип Калашникова»?
|
|||||
|
18.04.2024 09:36:30
Добавил варианты использования в первое сообщение.
«Бритва Оккама» или «Принцип Калашникова»?
|
|||
|
17.04.2024 18:31:36
testuser, да похож на Variant, только немного попроще. Данный инструмент XLLcmdE12xlSet() по скорости обгоняет .Value2 на 15% XLOPER12 используется в Excel C API, так же как Variant в VBA. Собственно это основной тип (структура) данных. Для VBA, Excel трансформирует XLOPER12 в Variant и наоборот. В XLL я делаю это сам (ранее руками, теперь написал свой класс XloperX, даже в
Изменено:
«Бритва Оккама» или «Принцип Калашникова»?
|
|||||
|
17.04.2024 15:52:30
Моё почтение, джентльмены!
Инструмент для вставки данных на лист Excel без преобразования. т.е. "1" так и вставится как текст, а не как число. Не нужен апостроф, не нужен формат ячейки. Нужна надстройка Так же быстро заполняет диапазон одним значением. Использована функция Функция/Метод XLLcmdE12xlSet(XCHAR * param, LPXLOPER12 param2, LPXLOPER12 pxReference, LPXLOPER12 pxValue) param - командная строка XLL API - см. "XLL API": 1й параметр - Режим диалога для комманд меню XLL - см. "Диалог" param2 – зарезервирован pxReference - Прямоугольная ссылка (адрес), описывающая целевую ячейку или ячейки. Адрес должен описывать смежные ячейки. pxValue - Значение или значения, помещаемые в ячейку или ячейки. Аргумент pxValue pxValue может быть значением или массивом. Если это значение, этим значением заполняется весь диапазон назначения. Если это массив, элементы массива помещаются в соответствующие расположения в прямоугольнике. Если для четвертого аргумента используется горизонтальный массив, он дублируется вниз, чтобы заполнить весь прямоугольник. Если используется вертикальный массив, он дублируется вправо для заполнения всего прямоугольника. Если вы используете прямоугольный массив, и он слишком мал для прямоугольного диапазона, в который вы хотите его поместить, этот диапазон заполняется исходными данными размером с массив, а остальной диапазон заполняется #Н/Д. Если целевой диапазон меньше исходного массива, значения копируются до пределов целевого диапазона, а лишние данные из массива игнорируются. Чтобы очистить элемент прямоугольника назначения, используйте элемент массива типа Empty в исходном массиве. Чтобы очистить весь прямоугольник назначения, опустите четвертый аргумент. Ограничения Невозможно отменить xlSet . Кроме того, он удаляет все сведения об отмене, которые могли быть доступны ранее. XlSet может помещать в ячейки только константы, а не формулы. Максимальная длина помещаемой строки 8190 символов. Возвращает код ошибки: 0 - команда выполнена успешно и Error 2036, #NUM!, #ЧИСЛО! - если ошибка. Пример использования:
Изменено:
«Бритва Оккама» или «Принцип Калашникова»?
|
|||
|
09.04.2024 12:22:36
«Бритва Оккама» или «Принцип Калашникова»?
|
|||||
|
05.04.2024 07:31:39
XLL это обычная надстройка, ее не нужно запускать все время. Ее нужно поместить в папку для надстроек и подключить (поставить галку в надстройках). Если файл открывать из любого другого места, без размещения в надстройках, он будет открыватся как обычный файл, и при закрытии Excel, нужно будет открывать ещё раз.
Еще есть файл установки, он делает все сам (размещает в парке надстроек - надстройку) и подключает её (ставиь галку в надстройках). Выполняется один раз. Когда перестала работать формула, появлялась ли какая ошибка?
Изменено:
«Бритва Оккама» или «Принцип Калашникова»?
|
|
|
06.02.2024 17:54:14
DAX Studio не справился, потому как я не умею его готовить. Посему пришлось использовать решение выложенное выше с апгрейдом: 1.Выгружаются данные любого размера (у меня 2,5 млн строк, 60 столбцов, в основном текст) 2.Спец.символы экранируются, в данном случае кавычки 3.Числа сохраняются без кавычек, что правильно распознается SQL-сервером 4.Дата сохраняется в формате, который понимает SQL: "yyyy-mm-dd hh:mm:ss" 5.Отключен Timeout, который вызывал отключение запроса на больших временных отрезках (больших данных): cmd.CommandTimeout = 0 ' 6.Поменял фильтр CSV-файлов для нового Excel, кто хочет может допилить до "правильного" кода не привязанного к фильтру, а привязанного к CSV: OFD.FilterIndex = 21 7.Оставил всеми любимый GoTo - на функционал не влияет, кто хочет подпилить - прошу. 8.Файл выгружается в кодировке Windows-1251, не знаю, может ли VBA выгружать в другой, мне было не нужно, можно тоже подпилить при желании. Да, забыл... По скорости выгрузки +- паритет с DAX Studio (у меня в тестах быстрее, чем DAX Studio), Плюс NULL-значения не выгружает (;;), что в SQL и распознается как NULL. DAX Studio выгружает как пустую строку(;"";), что, я считаю, некорректно, т.к. в SQL попадает как пустая строка. Плюс DAX Studio дату оформляет в виде строки с кавычками так, что SQL не распознает как дату. Плюс DAX Studio проставляет в число системный разделитель дробной части, т.е. "," (запятая). В инструменте всегда "." (точка), что корректно загружается в SQL. Из особенностей инструмента: числовые значения если число дробное и меньше нуля, ведущий нуль до разделителя дробной части не проставляется, пример: число 0,002365 отображается как .002365, так отрабатывает
Изменено:
«Бритва Оккама» или «Принцип Калашникова»?
|
|||||||
|
05.02.2024 09:10:05
04.02.2024 BedvitXLL.dll_v5.1
+ +Добавлена обработка ошибок на листе Excel при шифровании, дешифровки и сохранении формул/значений. Как сохраняются текстовые форматы в функциях форматирования в разных локализациях Win + Excel, как сам Excel с этим справляется пока вопрос открытый.
Изменено:
«Бритва Оккама» или «Принцип Калашникова»?
|
|
|
30.01.2024 10:24:54
Senaki, к сожалению, единственного тестера в той теме забанили (не за взлом - я давал офф. разрешение, как разработчик на "стресс-тестирование", а за несоблюдение других правил). Сам с интересом почитаю, если такая информация появятся.
«Бритва Оккама» или «Принцип Калашникова»?
|
|
|
19.01.2024 00:07:42
Изменено:
«Бритва Оккама» или «Принцип Калашникова»?
|
|
|
18.01.2024 10:32:11
Бахтиёр,
а) этот инструмент позволяет зашифровать нужный диапазон данных (формул) и пользователь может так же на них ссылатся, когда нужно - можно этот диапазон расшифровать и сделать пересчет модели. б) формулу можно пересчитать и зашифровать, при следующем пересчёте - можно сделать это еще раз. В динамике получать результат из зашифрованных формул нельзя. +Для работы нужна надстройка, ее можео просто открыть или установить в папку надстроек. Работает как обычная надстройка под правами пользователя. +Поддерживаются все символы юникода, какие сможет отобразить Excel - это вопрос шрифтов.
Изменено:
«Бритва Оккама» или «Принцип Калашникова»?
|
|
|
18.01.2024 00:24:21
Новая редакция BedvitXLL64v5.0b (beta)
Добавленный функционал: +для каждой команды есть всплывающие подсказки +хранить и шифровать можно значения (value2) или формулы (formula). Формула может содержать максимум 8 тыс. символов +добавлены разные алгоритмы шифрования +тип данных и алгоритм шифрования запоминается при зашифровки, и их нужно указывать только при шифровании. При расшифровки нужен только 1 пароль (повтор пароля нужен только для шифрования, для расшифровки достаточно одного-первого) +шифровать можно на листе, шифровать можно сохраняемые диапазоны и шифровать можно и файл пользовательских сохранений. +сохранять диапазон в списке диапазонов можно в зашифрованном виде или не в зашифрованном (в незашифрованном эффективнее сжимаются сохранения т.к. обрабатываются все дубликаты во всех сохранённых диапазонах, а не частично в отдельном диапазоне), но можно шифровать сам файл пользовательских настроек - эффективность сжатия сохраняется. +есть возможность автоматически определять границы диапазона, выделяя весь лист или целый столбец или целую строку, см. usedrange +добавлена возможность включать пользовательские сообщения и сообщения в статус-баре Excel +ЭКСПЕРЕМЕНТАЛЬНО: добавлено автоматическое распознавание разных блоков зашифрованных диапазонов, с разными алгоритмами и их расшифровка разом (см. видео).
Изменено:
«Бритва Оккама» или «Принцип Калашникова»?
|
|
|
11.01.2024 11:08:53
Jack Famous, Спасибо за тест! Твоих предложений много, нужно отобрать интересные и полезные! Видео - это тема, может youtube - канал завести?
«Бритва Оккама» или «Принцип Калашникова»?
|
|
|
11.01.2024 09:23:05
Мое почтение, джентльмены!
В продолжении темы Сделал инструменты шифрования алгоритмами AES данных на листе Excel и в коде VBA. Виды алгоритмов шифрования можно выбирать. В тесте работает алгоритм AES256:CBC. Функционал: 1. Можно шифровать как отдельные значения так и диапазоны/массивы. 2. Шифровать данные можно прям на листе Excel, с дальнейшей расшифровкой нужного диапазона или всего листа. 3. Зашифрованные данные можно хранить в XLL как в виде значений (value2), так и в виде формул (formula) 4. Алгоритм шифрования AES256:CBC. Использована библиотека 5. Пароль нигде не хранится, его знает только пользователь и при утере, расшифровать данные не получится никому 6. Зашифрованные диапазоны - независимые, т.е. можно каждый отдельный диапазон зашифровать со своим паролем, можно зашифровать диапазон дважды (для гиков ) 7. Для данных у которых упаковка будет экономить размер итоговой зашифрованной строки (для массивов и длинных строк) - используется алгоритм сжатия 8. Реализован механизм ( 9. Данные на листе Excel шифруются для каждой ячейки отдельно (для возможности хранить и расшифровывать данные независимо для каждой ячейки) с применением п,7. Для VBA (одно значение или массив) зашифровываются в один массив байт, что позволяет применять и п.7 и п.8 10. Итоговый результат шифрования (любого типа данных: строки, числа, ошибки и т.д.) - хранится в виде строки (массива зашифрованных байт). Шифрование на листе Excel и хранение данный в XLL: Шифрование данных VBA: Функции: 1. VARIANT stringProtect = VariantAES256Encrypt(VARIANT variantIn, BSTR password, BSTR salt, LONG mode) 2. VARIANT variantUnProtect = VariantAES256Decrypt(VARIANT byteArrayIn, BSTR password, BSTR salt, LONG mode) Можем обсудить, кому интересно, подробности и, возможно, внести новый функционал, если он нужен и не реализован. Надстройка:
Изменено:
«Бритва Оккама» или «Принцип Калашникова»?
|
|
|
03.01.2024 11:40:16
БМВ, Михаил, единственного тестера в данной теме забанил, эх...
В итоге не используя дыры самого VBA, сам код можно хранить так же безопасно как в .rar или запароленном Excel-файле. Целесообразность будет определятся другими плюшками, которых нет в других инструментах. Если кому интересно будет обговорить эти плюшки - можем обсудить в этой же теме. Плюшка в виде выполнения кода без ввода пароля - не целесообразна в виду невозможности гарантировать конфиденциальность выполняемого VBA-кода.
Изменено:
«Бритва Оккама» или «Принцип Калашникова»?
|
|||||||||||||||
|
31.12.2023 14:30:03
Ну что, вскрываемся?
Пароль:
«Бритва Оккама» или «Принцип Калашникова»?
|
|||||
|
20.12.2023 22:47:50
Думаю с ИИ будет так же как и с космосом, после полета Гагарина писали и планировали в 21 веке быть на луне, марсе, венере, с околоземными станциями и базами на планетах.
В итоге случилось не так, как думали. Всем стало просто не интересно и технологии не вышли на нужный уровень.
Изменено:
«Бритва Оккама» или «Принцип Калашникова»?
|
|
|