0 / 0 / 0
Регистрация: 19.08.2020
Сообщений: 12
1

Как открыть файл Excel (sdkxll)?

28.08.2020, 15:49. Показов 19901. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.
Может ли кто подсказать как открыть файл Excel при помощи функций Microsoft sdk xll?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.08.2020, 15:49
Ответы с готовыми решениями:

Как открыть конкретный excel-файл?
Нужно получить доступ к уже готовому excel-файлу. Пользуюсь FindExecutable и ShellExecute, ввожу...

Открыть папку и выделить файл/открыть файл в Excel
Привет, как программно открыть папку и выделить файл ? также как заставить Excel открыть файл ? в...

Как открыть html-файл через MS Word и MS Excel?
Здравствуйте, вопрос в заголовке темы. Конкретно интересует как это сделать с ShellExecute. Буду...

Как открыть excel файл?
надо задать путь к файлу например в Excel это делается вот так: W_FileName =...

18
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
28.08.2020, 16:33 2
Цитата Сообщение от Ninat Посмотреть сообщение
Может ли кто подсказать как открыть файл Excel при помощи функций Microsoft sdk xll?
Ты расширение для Excel собрался делать? Или тебе просто нужно открыть документ excel?
Для чего тебе понадобилась xll?
0
0 / 0 / 0
Регистрация: 19.08.2020
Сообщений: 12
29.08.2020, 20:28  [ТС] 3
Есть макрос на vba, запускаемый с открытой книги.
1. Запрос на открытие файла с исходными данными
2. Копируется очень большой диапазон данных, который вставляется в книгу с расчетами
3. Вычисляются все формулы книги
4. В цикле все повторяется много раз
проблема в больших объемах данных и большом количестве формул, результат очень медленное выполнение макроса
это в общих чертах.
пробую сделать xll для ускорения работы.

это также можно сделать без надстройки, просто отдельной программой, так как никаких действий в самом Excel нет.
0
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
29.08.2020, 20:34 4
Цитата Сообщение от Ninat Посмотреть сообщение
проблема в больших объемах данных и большом количестве формул, результат очень медленное выполнение макроса
это в общих чертах.
пробую сделать xll для ускорения работы.
Думаешь, xll здесь поможет?
Возможно здесь проблема в неправильной организации данных, либо в выборе Excel в качестве хранилища.
0
0 / 0 / 0
Регистрация: 19.08.2020
Сообщений: 12
29.08.2020, 20:36  [ТС] 5
от Excel отказаться нельзя
0
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
29.08.2020, 20:39 6
Ну и, вполне вероятно, что сам скрип криво написан
0
0 / 0 / 0
Регистрация: 19.08.2020
Сообщений: 12
29.08.2020, 20:41  [ТС] 7
можно сделать отдельной консольной программой, открывая оба файла, с использованием sdk xll. Надеюсь это будет работать быстрее.
0
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
29.08.2020, 20:46 8
Цитата Сообщение от Ninat Посмотреть сообщение
можно сделать отдельной консольной программой, открывая оба файла, с использованием sdk xll. Надеюсь это будет работать быстрее.
По-моему, xll только в сам Excel грузится. Возможно ты имел ввиду com-объекты для работы с Excel? https://docs.microsoft.com/en-... -fill-data
0
0 / 0 / 0
Регистрация: 19.08.2020
Сообщений: 12
29.08.2020, 20:50  [ТС] 9
извините, имела ввиду консольное приложение с использованием sdk
0
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
29.08.2020, 21:01 10
Цитата Сообщение от Ninat Посмотреть сообщение
извините, имела ввиду консольное приложение с использованием sdk
В любом случае, вряд ли ты что-то ускоришь. VBA вполне нормально работает. Надо оптимизировать данные и скрипт.

Добавлено через 7 минут
https://superuser.com/question... es-via-vbs
0
0 / 0 / 0
Регистрация: 19.08.2020
Сообщений: 12
29.08.2020, 21:10  [ТС] 11
скрипт простейший - копирование и вставка. Все что возможно отключено, перерасчет формул вручную. Данные оптимизировать невозможно- к ним нет доступа. Спасибо за ответ.

Добавлено через 4 минуты
Да и копирование не по ячейкам, а сразу одним куском.
0
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
29.08.2020, 21:14 12
Цитата Сообщение от Ninat Посмотреть сообщение
Да и копирование не по ячейкам, а сразу одним куском.
А что именно тормозит?

Добавлено через 1 минуту
Копирование через буфер обмена что-ли сделано?
0
0 / 0 / 0
Регистрация: 19.08.2020
Сообщений: 12
29.08.2020, 21:17  [ТС] 13
в основном вычисление формул. данных очень много и количество циклов тоже(зависит от количества строк исходного файла)

Добавлено через 59 секунд
копирование copy и pastespecial
0
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
29.08.2020, 21:22 14
Цитата Сообщение от Ninat Посмотреть сообщение
в основном вычисление формул. данных очень много и количество циклов тоже(зависит от количества строк исходного файла)
Т.е. формулы всё-таки вычисляются в скрипте?
Покажи кусок этого скрипта

Добавлено через 2 минуты
Не лучше будет экспортировать эти данные в базу, в тот же Access, рассчитать там всё что надо и экспортировать обратно в Excel?
0
0 / 0 / 0
Регистрация: 19.08.2020
Сообщений: 12
29.08.2020, 21:36  [ТС] 15
Application.Calculation = xlCalculationManual ---- в начале скрипта
..............
wsSheet1.Range(rangeX).Copy
wsBook2.Worksheets("Source").Range(rangeY).PasteSpecial

Application.Calculation = xlCalculationAutomatic
...............
Application.Calculation = xlCalculationManual

Добавлено через 3 минуты
не знаю что и как считается,нет доступа к формулам тоже, поэтому только Excel
0
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
29.08.2020, 21:39 16
Цитата Сообщение от Ninat Посмотреть сообщение
Application.Calculation = xlCalculationAutomatic
Тормозит, я так понимаю, здесь?

Цитата Сообщение от Ninat Посмотреть сообщение
не знаю что и как считается,нет доступа к формулам тоже, поэтому только Excel
А что ты тогда собиралась в xll делать?
И про какие циклы та говорила?
0
0 / 0 / 0
Регистрация: 19.08.2020
Сообщений: 12
29.08.2020, 21:43  [ТС] 17
excel 2010 64 разряда, может без Vba расчеты будут быстрее. На форумах есть такие сообщения и ссылка на c++ sdk xll
0
1195 / 247 / 21
Регистрация: 20.05.2016
Сообщений: 1,084
Записей в блоге: 21
18.09.2020, 18:16 18
Пользуюсь своей xll, но пока не пойму, чем это вам поможет. Если будите писать свои UDF, то да профит будет.
Возможно вы копируете формулы, и они вычисляются. Что у вас после ".PasteSpecial"? (обычно указывается, что копируем, к примеру формат - PasteSpecial Paste:=xlPasteFormats)? Приложите полный код на VBA.
0
0 / 0 / 0
Регистрация: 19.08.2020
Сообщений: 12
18.09.2020, 18:51  [ТС] 19
В копируемом файле только значения, формул нет. Но после копирования выполняется расчет формул по всей книге. Формул много и много ссылок на другие листы.
Частично уже сделала xll. Получается, чем больше формул в книге, тем большая разница в скорости вычислений, и xll работает в несколько раз быстрее.
0
18.09.2020, 18:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.09.2020, 18:51
Помогаю со студенческими работами здесь

Как программно открыть Excel файл?
Создаю файл, вношу данные, сохраняю... А как его програмно открыть то? что то на предложения типа ...

Как открыть существующий Excel файл?
Добрый день, ребята! Пните в правильном направлении, пожалуйста. Есть файл-форма Excel отчета....

Как открыть Excel файл через datagridview?
Всем привет! Мне нужно в программе открывать Excel файл, его редактировать и сохранять. Последние...

Как открыть файл Excel на сетевом диске?
Друзья! Помогите, пожалуйста, решить следующую проблему. Написал макрос, который сначала читает...

Как открыть уже созданный файл Excel?
Кто знает как через С# открыть уже созданный файл excel?

Как открыть файл excel для записи
Как открыть файл excel для записи с помощью нажатия кнопки на форме?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru