0 / 0 / 0
Регистрация: 09.04.2019
Сообщений: 7

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

22.08.2019, 11:28. Показов 2514. Ответов 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,249
22.08.2019, 11:56
Sofya63, где код?
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,695
Записей в блоге: 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru