zys025 发表于 2024-3-27 10:17

关于自动生成标书

在网上看到一个自动生成标书的视频,地址AI赋能工作:自动化程序助力高效投标文件制作。
因为没求到源码,自己用AI写了一个简单的:
from docx import Document
from openpyxl import load_workbook

# 加载模板文档
template_doc = Document('Kimi-Ai-1.docx')

# 加载Excel文件
wb = load_workbook('资料文件 (2).xlsx')
sheet = wb.active

# 创建一个字典来存储关键字和内容的对应关系
keywords_to_replace = {}
for row in sheet.iter_rows(min_row=2, values_only=True):# 从第二行开始读取数据
    keyword, content = row
    if keyword and content:# 确保关键字和内容不为空
      keywords_to_replace = content.strip()

# 替换模板中的关键字,并设置新文本的字体为粗体
for paragraph in template_doc.paragraphs:
    for run in paragraph.runs:
      if run.text:# 确保run.text不为空
            for keyword, content in keywords_to_replace.items():
                index = run.text.find(keyword)
                while index != -1:
                  # 替换文本
                  run.text = run.text[:index] + content + run.text
                  # 将新文本设置为粗体
                  run.bold = True# 粗体属性设置为True
                  index = run.text.find(keyword, index + len(content))# 更新关键字的索引

# 保存新生成的文档
template_doc.save('Kimi-Ai-updated.docx')
这个希望把新添加的文字都变为红色,一直不成功,请大师指点指点。
图一是原文件,
图二是希望生成的样子,
图三是现在代码生成的,请指点一下

zzhlei 发表于 2024-3-27 11:11

感谢你的分享,它已经成为我今后学习的重要素材。

落木萧萧 发表于 2024-3-27 11:13

收藏了,感谢分享

wapjsx 发表于 2024-3-27 11:14

from docx import Document
from openpyxl import load_workbook
from docx.shared import RGBColor# 颜色

# 加载模板文档
template_doc = Document('Kimi-Ai-1.docx')

# 加载Excel文件
wb = load_workbook('资料文件 (2).xlsx')
sheet = wb.active

# 创建一个字典来存储关键字和内容的对应关系
keywords_to_replace = {}
for row in sheet.iter_rows(min_row=2, values_only=True):# 从第二行开始读取数据
    keyword, content = row
    if keyword and content:# 确保关键字和内容不为空
      keywords_to_replace = content.strip()

# 替换模板中的关键字,并设置新文本的字体为粗体
for paragraph in template_doc.paragraphs:
    for run in paragraph.runs:
      if run.text:# 确保run.text不为空
            for keyword, content in keywords_to_replace.items():
                index = run.text.find(keyword)
                while index != -1:
                  # 替换文本
                  run.text = run.text[:index] + content + run.text
                  # 将新文本设置为粗体
                  run.bold = True# 粗体属性设置为True
                  run.font.color.rgb = RGBColor(255,0,0) # 设置红色
                  index = run.text.find(keyword, index + len(content))# 更新关键字的索引

# 保存新生成的文档
template_doc.save('Kimi-Ai-updated.docx')

添加了2行内容,请尝试下看看,是否可行?!

sai609 发表于 2024-3-27 11:26

标书需要ask甲方付费购买的,自己制作的不算,原因你懂的,

sp0770 发表于 2024-3-27 11:47

标书有一定的模版的,除非是没有要求的可以自己拟草,你这也只是商务标的一小部分,技术标就麻烦了

vvsvv 发表于 2024-3-27 13:35

谢谢分享

gzl5755 发表于 2024-3-27 13:53

感谢分享!

happysmiles 发表于 2024-3-27 14:00

excle里的资料文件字段名称是怎么配置的?配置的是单位还是单位:

Liebesfreud 发表于 2024-3-27 14:14

真是瞌睡来了送枕头,正在做标书的我喜极而泣,感谢大哥的代码
页: [1] 2
查看完整版本: 关于自动生成标书