Взаимодействие с Excel

Автор Ilyaz, 12.08.24, 14:09:36

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ilyaz

Прошу подсказать, где можно посмотреть список команд для управления приложением Excel через макросы для компаса. Нашел пример, как можно открыть excel и записать в него данные, но как сохранить полученный файл - непонятно. Также интересует возможность сортировки данных в книге excel.

Валерий Изранов

Python можно научить управлять и Компасом и Excel.
Компас напрямую управлять Excel не умеет.

Петрович-47

Ilyaz
список команд в справке Экселя

Можете привести здесь этот пример?

Ilyaz

Цитата: Валерий Изранов от 12.08.24, 14:18:17Python можно научить управлять и Компасом и Excel.
Компас напрямую управлять Excel не умеет.

Не подскажите, как это можно реализовать? В интернете обычно для этого используют библиотеку openpyxl. Однако примеры кода, которые размещены на этом форуме, работают без нее.

Ilyaz

Цитата: Петрович-47 от 12.08.24, 14:39:08Ilyaz
список команд в справке Экселя

Можете привести здесь этот пример?

Пример кода

def print_to_excel(result):
    excel = Dispatch("Excel.Application")  # Подключаемся к Excel
    excel.Visible = True                  # Делаем окно видимым
    wb = excel.Workbooks.Add()            # Добавляем новую книгу
    sheet = wb.ActiveSheet                # Получаем ссылку на активный лист

    # Создаём заголовок таблицы
    sheet.Range("A1:J1").value = ["Имя файла", "Разработчик",
                                  "Кол-во размеров", "Кол-во пунктов ТТ",
                                  "А0", "А1", "А2", "А3", "А4", "Масштаб"]

    # Заполняем таблицу
    for i, row in enumerate(result):
        sheet.Range("A%d:J%d" % i+2).value = [row['Filename'],
                                              row['Designer'],
                                              row['CountDim'],
                                              row['CountTD'],
                                              row['A0'],
                                              row['A1'],
                                              row['A2'],
                                              row['A3'],
                                              row['A4'],
                                              "".join(('="', row['Scale'], '"'))]

Петрович-47

А wb.SaveAs(newfilename) не пробовали?

p3452

Вам зачем Excel в 2024 году, нашумевшая ситуация с "обновлением" от Мелкомягких ничему не научила?
Пользуйте НЕЙТРАЛЬНЫЕ форматы, например CSV, который понимают ВСЕ "Электронные таблицы"...

Ilyaz

Цитата: Петрович-47 от 12.08.24, 14:58:26А wb.SaveAs(newfilename) не пробовали?

К сожалению не работает

Ilyaz

Цитата: p3452 от 12.08.24, 15:07:28Вам зачем Excel в 2024 году, нашумевшая ситуация с "обновлением" от Мелкомягких ничему не научила?
Пользуйте НЕЙТРАЛЬНЫЕ форматы, например CSV, который понимают ВСЕ "Электронные таблицы"...

Excel использовал, т.к. для него был пример на форуме. Буду благодарен, если подскажите, как сделать то же самое, но с CSV.

Валерий Изранов

Ilyaz, а вы умеете "вручную" работать с Excel?
"Также интересует возможность сортировки данных в книге excel"- а вы  вручную умеете сортировать?

YNA

Цитата: p3452 от 12.08.24, 15:07:28Вам зачем Excel в 2024 году, нашумевшая ситуация с "обновлением" от Мелкомягких ничему не научила?
А что за ситуация? Что там приключилось? Хотелось бы узнать.
Давно уже не пользуюсь MS Office, по этому не в курсе событий.
У нас в основном используются (по вкусам) Либре Офис, Мой Офис, Онли Офис, "да мало ли в Бразилии Педро":)

Валерий Изранов

Судя по затянувшемуся ответу Ilyaz, вам вначале надо освоить Excel.
Нужная и полезная программа. Есть на каждом компьютере.
Будет существовать еще много лет. В интернете все находят обучающие видео.
Ну а потом возьметесь за Python.

Ilyaz

Цитата: Валерий Изранов от 12.08.24, 15:36:15Ilyaz, а вы умеете "вручную" работать с Excel?
"Также интересует возможность сортировки данных в книге excel"- а вы  вручную умеете сортировать?
Работать вручную я, естественно, умею. Но смысл написания макросов - уйти от ручной рутинной работы.

Валерий Изранов

Если умеете вручную, напишите программу на Python, которая повторит эти действия.
Без Компаса пока.

p3452

Цитата: Ilyaz от 12.08.24, 15:30:26Excel использовал, т.к. для него был пример на форуме. Буду благодарен, если подскажите, как сделать то же самое, но с CSV.
*.CSV - это "Текстовый формат с фиксированным разделителем"...
Для его СОЗДАНИЯ не нужны СТОРОННИЕ программы - хватит возможностей самого Python, а ЧИТАЕТСЯ он любыми "Электронными таблицами" (программы типа Excel).
"Пример" давать не имеет смысла - не ясна Ваша задача...

Цитата: YNA от 12.08.24, 15:51:41А что за ситуация? Что там приключилось? Хотелось бы узнать.
Давно уже не пользуюсь MS Office, по этому не в курсе событий.
У нас в основном используются (по вкусам) Либре Офис, Мой Офис, Онли Офис, "да мало ли в Бразилии Педро":)
В двух словах не расскажешь... Можно глянуть в интернете, например, на такую фразу: "19 июля 2024 года произошёл глобальный сбой в работе Windows".

Вират Лакх

Цитата: Ilyaz от 12.08.24, 14:41:29В интернете обычно для этого используют библиотеку openpyxl.
Это для работы с файлами без приложения Excel.
Цитата: Ilyaz от 12.08.24, 14:09:36Прошу подсказать, где можно посмотреть список команд для управления приложением Excel через макросы
https://learn.microsoft.com/ru-ru/office/vba/api/excel.application(object)
+ Благодарностей: 2

YNA

Цитата: p3452 от 12.08.24, 21:20:15Можно глянуть в интернете, например, на такую фразу: "19 июля 2024 года произошёл глобальный сбой в работе Windows".

Да, сбой был конкретный, но Микрософтовцы и тем более Ексель тут не причём, это другая фирма драйвер обновила.

Teywl Wind

#17
Цитата: Ilyaz от 12.08.24, 14:09:36Прошу подсказать, где можно посмотреть список команд для управления приложением Excel через макросы для компаса. Нашел пример, как можно открыть excel и записать в него данные, но как сохранить полученный файл - непонятно. Также интересует возможность сортировки данных в книге excel.

Здравствуйте. А задача какая? Нужно считать данные с чертежа компас и занести их в excel таблицу? А после сохранить этот файл? И как я понимаю, по мере открытия других документов компас и прожатии макроса, файл excel будет пополняться?

Lemieux

Цитата: p3452 от 12.08.24, 21:20:15*.CSV - это "Текстовый формат с фиксированным разделителем"...
А xlsx это просто архив со открытой спецификацией  :sun:
+ Благодарностей: 1

Ilyaz