Это моя первая публикация, поэтому, если я не буду оптимально не стесняюсь давать обратную связь или задавать последующие вопросы. Я пытаюсь изменить отчет проекта на шаблон. Однако не каждый заполнитель работает. Я не верю, что есть скрытые персонажи или что -то в этом роде, потому что я сделал много небольших тестов, таких как копирование одного заполнителя в месте другого, а затем просто изменить 1 на 2 и т. Д. В списке документа и замены. Вторая проблема заключается в том, что ни один из заполнителей на обложке не работает, даже если они работают в других местах. Я не могу разместить ни весь документ, ни фактическую страницу с обложки, будь то, и имена в списке замены. Но вот пример текста, который я пытаюсь заменить: < /p>
Раздел шаблона У меня проблемы с заменой < /p>
Вот то, что я получаю от Запуск кода: < /p>
Результаты - некоторые заполнители работают, а другие не < /p>
Вот документы в публичной папке:
https : //drive.google.com/drive/folders/1ao8_xoudp5lznccytjv3jozymz1krjx7? usp = drive_link
Список замены:
Значения замены
Вот код: < /p>
`from docx import Document
import pandas as pd
import os
def load_data(file_path):
"""Load data from CSV file."""
try:
df = pd.read_csv(file_path)
# Use first two columns regardless of names
if len(df.columns) >= 2:
first_col, second_col = df.columns[0], df.columns[1]
# Clean up the data
df[first_col] = df[first_col].astype(str).str.strip()
df[second_col] = df[second_col].fillna("").astype(str).str.strip()
return dict(zip(df[first_col], df[second_col]))
else:
raise ValueError("CSV file must have at least 2 columns")
except Exception as e:
print(f"Error reading CSV file: {file_path}")
print(f"Error details: {str(e)}")
raise
def replace_placeholders(doc, data):
"""Replace placeholders in document with values from data."""
for paragraph in doc.paragraphs:
for run in paragraph.runs:
for key, value in data.items():
placeholder = f""
if placeholder in run.text:
run.text = run.text.replace(placeholder, str(value))
def generate_report(template_path, output_path, data_path):
"""Generate report from template using data."""
try:
# Remove existing output file if it exists
if os.path.exists(output_path):
os.remove(output_path)
print(f"Removed existing output file: {output_path}")
# Load data and create report
data = load_data(data_path)
print(f"Loaded {len(data)} replacements from CSV")
doc = Document(template_path)
replace_placeholders(doc, data)
doc.save(output_path)
print(f"Report generated: {output_path}")
except Exception as e:
print(f"Error generating report: {str(e)}")
raise
# File paths
template_path = r"C:\xxxxx\Test4.docx"
output_path = r"C:\\xxxxx\\generated_acquisition_report.docx"
data_path = r"C:\\xxxxx\\data2.csv" # Changed to .csv
if __name__ == "__main__":
generate_report(template_path, output_path, data_path) `
< /code>
Я попытался использовать Grok, CHATGPT и Cursor AI, и ничего не сработало ... Я взял пространства, использованные черты, всевозможные вещи, и это не работает. Даже когда я пробую «восстановить» документ проекта и выполнять страницу на странице, ему не нравятся заполнители на первой странице. < /P>
Спасибо за вашу помощь. Я чувствую, что есть что -то простое, что происходит. Я действительно многому научился из поиска вопросов Stack Overflow в прошлом, поэтому я ожидаю, что вы все выясните быстро:-) < /p>
Еще раз спасибо,
larks < / п>
Подробнее здесь: https://stackoverflow.com/questions/794 ... zed-report
Использование DOCX для замены заполнителей для стандартизированного отчета ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Использование DOCX для замены заполнителей для стандартизированного отчета
Anonymous » » в форуме Python - 0 Ответы
- 7 Просмотры
-
Последнее сообщение Anonymous
-