Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 09.04.2019
Сообщений: 7

Конфликт имён при обращении с файлами Excel

22.08.2019, 11:28. Показов 2478. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Умные люди, выручайте.

Есть скрипт ".exe" который работает с файлами Excel. Скрипт сделан по коду ".py".
Когда скрипт начинает операцию, т.е. обращается к файлу Excel, возникает ошибка (см. вложение "Конфликт имен.png").

Как обойти эту вещь? что дописать в код ? Помогите)
Миниатюры
Конфликт имён при обращении с файлами Excel  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.08.2019, 11:28
Ответы с готовыми решениями:

Конфликт имен при выгрузке данных в excel
Здравствуйте. В собственной конфигурации на 1С 8.3 есть обработка с несколькими ТЧ, в которые запросами выводятся нужные данные. Надо эти...

Экспорт в Excel и конфликт пространств имен
Приветствую ,изучил множество мануалов ,видео как подключить . Подключал Dll "Microsoft.Office.Interop.Excel.dll" Дальше не могу...

Конфликт имен: Имя не должно совпадать со встроенным именем в Excel
Подскажите как программно бороться с этой проблемой. При программном открытии файла Excel формата xlsx выскакивает следующая ошибка...

4
5042 / 1069 / 149
Регистрация: 29.01.2013
Сообщений: 6,241
22.08.2019, 11:56
Sofya63, где код?
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
22.08.2019, 11:59
допиши в код, чтобы не было конфликта имен, не благодари!
0
0 / 0 / 0
Регистрация: 09.04.2019
Сообщений: 7
22.08.2019, 12:06  [ТС]
Код во вложении
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
import os, re
import win32com.client as com_client
 
print('Программа (скрипт) осуществляет сквозную нумерацию страниц файлов (документов) формата “.xls, .xlsx”.\
    \nСкрипт должен лежать в той же директории, что и обрабатываемые файлы.\
    \nПоследовательность определяется по номеру документа в названии файла (в порядке возрастания).\
    \nВажно! Убедитесь, что приложение “Microsoft Excel”  закрыто.\
    \nВ случае неполадок нужно снять задачу “Microsoft Excel”  в диспетчере задач.\n')
 
def ask_and_handle(func, err_msg):
    try:
        return func()
    except:
        print(err_msg)
        return func()
 
 
def enumerate_needed():
    print('Какую операцию выполнить?')
    action_num = int(input('Удалить нумерацию(1) / Проставить нумерацию(2): '))
 
    return [False, True][action_num - 1]
 
def clear_all():
    print('Очистить все колонтитулы?')
    num = int(input('Все(1) / Выборочно(2): '))
 
    return [True, False][num - 1]
 
def enumerate_place():
    print('Какой колонтитул?')
    i = int(input('Верхний(1) / Нижний(2): '))
 
    return ['Top', 'Lower'][i - 1]
 
def choose_side():
    print('Какая часть?')
    i = int(input('Слева(1) / В центре(2) / Справа(3): '))
    side = ['Left', 'Center', 'Right'][i - 1]
    return side
 
def first_num():
    print('C какого числа начинать нумерацию?')
    current_page = int(input('Введите номер: '))
    return current_page
 
 
#ВВОДИМ ПАРАМЕТРЫ
need_to_enumerate = ask_and_handle(enumerate_needed, 'Некорректный ввод. Введите номер подходящего пункта')
 
if need_to_enumerate:
    header = ask_and_handle(enumerate_place, 'Выберете один из вариантов')
    side = ask_and_handle(choose_side, 'Выберете один из трех вариантов')
    current_page = ask_and_handle(first_num, 'Ошибка ввода. Проверьте данные и повторите')
 
else:
    header = ask_and_handle(clear_all, '1 или 2')
    if not header:
        header = ask_and_handle(enumerate_place, 'Выберете один из вариантов')
        side = ask_and_handle(choose_side, 'Выберете один из трех вариантов')
 
print('')
 
 
#ВЫБИРАЕМ ФАЙЛЫ
folder_path = os.getcwd()
files = list(filter(
    lambda name: name[0] != '.' and 'xls' in name,
    os.listdir(folder_path)
))
files.sort(key=lambda file: list(map(int, re.findall('\d+', file))))
# files.sort()
 
 
#ВЫПОЛНЯЕМ ПРЕОБРАЗОВАНИЕ НАД ФАЙЛАМИ
Excel = com_client.Dispatch("Excel.Application")
 
for file in files:
    wb = Excel.Workbooks.Open(f'{folder_path}/{file}')
 
    wb.Worksheets(1).Activate()
    sheet = wb.ActiveSheet
    sheet.PageSetup.AlignMarginsHeaderFooter = True
    Excel.ActiveWindow.View = 3
 
    if need_to_enumerate:
        sheet.PageSetup.FirstPageNumber = current_page
 
    if header == 'Top':
        if side == 'Right':
            sheet.PageSetup.RightHeader = '&P' if need_to_enumerate else ''
        elif side == 'Center':
            sheet.PageSetup.CenterHeader = '&P' if need_to_enumerate else ''
        elif side == 'Left':
            sheet.PageSetup.LeftHeader = '&P' if need_to_enumerate else ''
    elif header == 'Lower':
        if side == 'Right':
            sheet.PageSetup.RightFooter = '&P' if need_to_enumerate else ''
        elif side == 'Center':
            sheet.PageSetup.CenterFooter = '&P' if need_to_enumerate else ''
        elif side == 'Left':
            sheet.PageSetup.LeftFooter = '&P' if need_to_enumerate else ''
    else:
        sheet.PageSetup.RightHeader = ''
        sheet.PageSetup.CenterHeader = ''
        sheet.PageSetup.LeftHeader = ''
 
        sheet.PageSetup.RightFooter = ''
        sheet.PageSetup.CenterFooter = ''
        sheet.PageSetup.LeftFooter = ''
 
    if need_to_enumerate:
        current_page += sheet.PageSetup.Pages.Count
        print(f'Страницы файла {file} пронумерованы')
    else:
        print(f'Колонтитулы файла {file} очищены')
 
    wb.Save()
    wb.Close()
 
Excel.Quit()
input('Операция успешно выполнена! Для выхода нажмите "Enter".')
0
0 / 0 / 0
Регистрация: 09.04.2019
Сообщений: 7
22.08.2019, 12:08  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
допиши в код, чтобы не было конфликта имен, не благодари!
Что именно дописать ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.08.2019, 12:08
Помогаю со студенческими работами здесь

Конфликт пространства имен excel (я в курсе что тема заезжена, но все же)
Всем привет) Видел уже много тем по данному вопросу И так же находил методы их исправить Но кажется в силу своей криворукости я...

Конфликт двух программ при обращении к текстовому файлу
Доброго времени суток. Постараюсь кратко, но емко… Для управления роботом пишу на Visual Basic 6.0 программу, которая при нажатии...

Конфликт имен при множественном наследовании struct
Уважаемые гуру, помогите разрешить конфликт имён в приведённом ниже примере, не изменяя структуру наследования. Заранее спасибо! ...

Пространство имен и конфликт имен
Доброго времени суток уважаемые пользователи. В контексте решаемой задачи возникла необходимость написать функцию деления двух чисел, в ней...

Ошибка при обращении к Access из Excel
Доброго времени дня :) Столкнулся с проблемой - при обращении к БД путем запроса con.Execute ("SELECT TOP 1 * FROM `"...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru