Я пытаюсь изменить отчет о проекте на шаблон. Однако не все заполнители работают. Вот пример текста, который я пытаюсь заменить: < /p>
Раздел шаблона У меня проблемы с заменой < /p>
Вот что я получаю от работы Код: < /p>
Результаты - некоторые работают некоторые заполнители, а другие не < /p>
Вот документы в публичной папке:
https: //drive.google.com/drive/folders/1ao8_xoudp5lznccytjv3jozymz1krjx7?usp=drive_link
Список замены:
Значения замены
p> вот код: < /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>
Я пытался изменить своих заполнителей, взяв места, использованные черты, всевозможные вещи, и это не работает. Даже когда я пытаюсь «восстановить» документ проекта и выполнять страницу на странице, не нравятся заполнители на первой странице.
Подробнее здесь: https://stackoverflow.com/questions/794 ... zed-report
Использование DOCX для замены заполнителей для стандартизированного отчета ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Использование DOCX для замены заполнителей для стандартизированного отчета
Anonymous » » в форуме Python - 0 Ответы
- 5 Просмотры
-
Последнее сообщение Anonymous
-