#python #python-docx
#python #python-docx
Вопрос:
Недавно я написал код на python для замены слова в MS Office с помощью python-docx. Код работает хорошо в течение нескольких недель. Я могу получить доступ ко всему заголовку на всей странице с помощью этого кода ниже;
sections = doc.sections
for z in range (0, len(sections)):
header_section = doc.sections[z]
header = header_section.header
header_text = header.paragraphs[0]
Однако несколько дней назад я обнаружил некоторую проблему. Код, похоже, не работает с первой страницей документа (но все еще работает на более поздней странице). Я пытаюсь выяснить, почему код просто перестает работать, и кажется, что это связано с другой настройкой первой страницы документа (я пытаюсь создать новый документ без другой первой страницы, и он работает просто отлично). Может ли кто-нибудь, пожалуйста, подсказать, из-за чего мой код перестает работать, чтобы я мог попытаться найти способ переписать код (любое обновление MS Office, которое может повлиять на код?). И если у вас есть какие-либо идеи, как получить доступ к заголовку в документе с другими настройками первой страницы, пожалуйста, поделитесь. Заранее благодарю.
Комментарии:
1. Ваш вопрос недостаточно квалифицирован и слишком конкретен. Недостаточно квалифицирован в предоставлении достаточного количества информации для воспроизведения проблемы и чрезмерно конкретизирован, предоставляя слишком много вопросов одновременно.
2. Возможно, вы не захотите получать доступ
header.paragraphs[0]
, если в нем нет элемента. Итак, вы должны сначала проверить это3. Пожалуйста, примите мои извинения, я совсем новичок в этом сообществе.
Ответ №1:
Раздел может содержать до трех верхних и трех нижних колонтитулов. Это заголовок первой страницы, заголовок нечетной страницы и заголовок по умолчанию. Большинство разделов имеют только заголовок по умолчанию, но если определен заголовок первой страницы, он используется только для первой страницы. Это связано с тем, что, скажем, первая страница главы обычно не имеет заголовка или может иметь заголовок, отличный от заголовка «running» в остальной части главы или другого раздела.
Поэтому посмотрите, определен ли у вас заголовок первой страницы или заголовок нечетной страницы; это может объяснить поведение, которое вы видите. Смотрите Эти страницы в документации для получения дополнительной информации:
https://python-docx.readthedocs.io/en/latest/api/section.html#id1
https://python-docx.readthedocs.io/en/latest/user/hdrftr.html
Комментарии:
1. Спасибо, сэр. Теперь я могу получить доступ к заголовку первой страницы. 🙂
2. @YootthachaiK добро пожаловать в StackOverflow. Не забудьте принять ответ на свой вопрос, нажав на галочку слева от ответа. Это подтверждает, что респондент потратил время на написание ответа, а также создает вашу собственную репутацию.
3. Я нажал кнопку «Принять», но, похоже, я просто новичок в stackoverflow, поэтому они просто записывают принятие, но не отображаются на отметке.