最近,腾讯云开发者社区推出了@你的 AI 编码搭子,满血开发拿鹅厂周边~的活动,只需要在 DeepSeek R1 满血版的腾讯云AI代码助手之后,在B站/小红书/腾讯云开发者社区 /CSDN/今日头条等任何技术社区分享发布 tencent-deepseekR1 模型使用体验,就可以参与 100% 获得鹅厂周边的抽奖活动,每日再评选 3位 优质反馈用户加赠腾讯定制周边露营桌。
年初处于新项目立项和旧项目结算的阶段,作为一个开发人员,就要写cosmic来衡量自己一年的工作内容,就需要经常和excel和word打交道。很多时候就是根据excle中的内容,在word中生成相应的标题和正文。
为了减少这种繁琐的工作,也为了体验一下腾讯云AI代码助手和DeepSeek满血版的能力,今天就看看是否能用腾讯云AI代码助手,在零代码的情况下帮我实现这样的一个工具。
我们在本地部署的DeepSeek基本上在7B - 32B之间,而满血版足足有671B,而最新版的腾讯云AI代码助手内置了DeepSeek R1满血版,极大提高了大模型编码的能力。除此之外,腾讯云AI代码助手还新增了 #Codebase 和 #Docs 功能。
我们在vscode或者IDEA中的插件市场中,就可以安装腾讯云AI代码助手,今天就以IDEA为例,来完成腾讯云AI代码助手的安装和使用,在settings中的插件市场搜索 腾讯云AI代码助手,然后点击安装或升级。
重启IDEA,即可在IDEA的右下角和侧边栏,看到腾讯云AI代码助手的图标。
点击模型列表,选择deepseek-r1,即可在腾讯云AI代码助手中使用满血版的DeepSeek。
接下来我就使用腾讯云AI代码助手,看看如何快速帮助我们开发出来满足需求的程序。
我们的excel格式内容如下:
数据一共六列,功能模块、一级功能点、二级功能点分别在word中要生成一、二、三级标题。功能要点、工作量和单价要放在三级标题下面。不过要注意的是,一个功能模块下有多个一级功能点,一个一级功能点下有多个二级功能点。
这里我使用python来实现,我直接打开一个python项目。然后再腾讯云AI代码助手中输入我的需求提示词,提示词如下:
我的需求是根据excel中的内容生成word文档。excel中数据一共六列,分别是功能模块、一级功能点、二级功能、功能要点、工作量和单价。功能模块由多个单元格合并而成,一个功能模块下有多个一级功能点,每个一级功能点由不同的单元格合并而成;一个一级功能点下有多个二级功能点,每个二级功能点由不同的单元格合并而成。每个功能要点、工作量和单价占据一行单元格。
功能模块、一级功能点、二级功能点分别在word中要生成一、二、三级标题。功能要点、工作量和单价要放在三级标题下面。
在这里我们使用了 #Codebase 指令,Codebase能够帮助用户理解的当前的项目,以实现基于本地工程更好的技术问答效果。就像这里我没有告诉腾讯云AI代码助手要使用python实现需求,但是因为我们打开的是一个python项目,Codebase基于当前项目环境,用python实现了需求。
如图所示,腾讯云AI创建了一个 doc_generator.py 代码文件,使用docx和pandas模块实现我们的需求,具体代码如下:
import pandas as pd
from docx import Document
# 读取 Excel 文件
file_path = "input.xlsx"
df = pd.read_excel(file_path)
# 处理合并单元格的空值,向下填充
df.fillna(method='ffill', inplace=True)
# 创建 Word 文档
doc = Document()
current_module = None
current_first_level = None
current_second_level = None # 记录当前的二级功能点
for index, row in df.iterrows():
module = row["功能模块"]
first_level = row["一级功能点"]
second_level = row["二级功能点"]
key_point = row["功能要点"]
workload = row["工作量(人天)"]
price = row["单价"]
# 添加一级标题(功能模块)
if pd.notna(module) and module != current_module:
doc.add_heading(module, level=1)
current_module = module
# 添加二级标题(一级功能点)
if pd.notna(first_level) and first_level != current_first_level:
doc.add_heading(first_level, level=2)
current_first_level = first_level
# 只有在 **第一行** 出现新 **二级功能点** 时,才添加三级标题
if pd.notna(second_level) and second_level != current_second_level:
doc.add_heading(second_level, level=3)
current_second_level = second_level
# 添加功能要点、工作量和单价(作为文本内容)
doc.add_paragraph(f"功能要点: {key_point}")
doc.add_paragraph(f"工作量: {workload} 人天")
doc.add_paragraph(f"单价: {price}")
# 保存 Word 文件
output_path = "output.docx"
doc.save(output_path)
print("Word 文件已生成:", output_path)
将excel保存为为input.xlsx,运行代码,输出我们想要的docx。
通过程序生成的word因为没有编号和样式,看起来比较乱。我们通过样式简单的设置一下编号、字体,就能更好地看出来程序生成的word内容,是符合我们的需求的。
因为好多同事都面临着写cosmic的问题,我就想把这个程序分享给他们,但是不是所有的同事都有python环境,所以我们直接打包程序可运行的程序给同事。
在打包之前,我们还需要有一个界面来选择xlxs文件,我们将需求提示词输入腾讯云AI代码助手:
在思考之后,腾讯云AI代码助手在doc_generator.py的基础上,生成了新的代码。
具体代码如下:
import sys
import pandas as pd
from docx import Document
from PyQt6.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QFileDialog, QLabel, QMessageBox
class ExcelToWordApp(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle("Excel 转 Word 工具")
self.setGeometry(300, 300, 400, 200)
layout = QVBoxLayout()
self.label = QLabel("请选择 Excel 文件", self)
layout.addWidget(self.label)
self.btn_select = QPushButton("选择 Excel 文件", self)
self.btn_select.clicked.connect(self.select_excel_file)
layout.addWidget(self.btn_select)
self.btn_generate = QPushButton("生成 Word 文件", self)
self.btn_generate.clicked.connect(self.generate_word_file)
layout.addWidget(self.btn_generate)
self.setLayout(layout)
self.excel_file = None
def select_excel_file(self):
file_dialog = QFileDialog()
file_path, _ = file_dialog.getOpenFileName(self, "选择 Excel 文件", "", "Excel 文件 (*.xlsx *.xls)")
if file_path:
self.excel_file = file_path
self.label.setText(f"已选择文件: {file_path}")
def generate_word_file(self):
if not self.excel_file:
QMessageBox.warning(self, "错误", "请先选择 Excel 文件!")
return
try:
output_file = self.convert_excel_to_word(self.excel_file)
QMessageBox.information(self, "成功", f"Word 文件已生成:\n{output_file}")
except Exception as e:
QMessageBox.critical(self, "错误", f"生成 Word 文件失败:\n{str(e)}")
def convert_excel_to_word(self, file_path):
df = pd.read_excel(file_path)
# 处理合并单元格的空值
df.fillna(method='ffill', inplace=True)
doc = Document()
current_module = None
current_first_level = None
current_second_level = None # 记录当前的二级功能点
for index, row in df.iterrows():
module = row["功能模块"]
first_level = row["一级功能点"]
second_level = row["二级功能点"]
key_point = row["功能要点"]
workload = row["工作量(人天)"]
price = row["单价"]
# 添加一级标题(功能模块)
if pd.notna(module) and module != current_module:
doc.add_heading(module, level=1)
current_module = module
# 添加二级标题(一级功能点)
if pd.notna(first_level) and first_level != current_first_level:
doc.add_heading(first_level, level=2)
current_first_level = first_level
# 添加三级标题(二级功能点)
if pd.notna(second_level) and second_level != current_second_level:
doc.add_heading(second_level, level=3)
current_second_level = second_level
# 添加功能要点、工作量和单价
doc.add_paragraph(f"功能要点: {key_point}")
doc.add_paragraph(f"工作量: {workload} 人天")
doc.add_paragraph(f"单价: {price}")
output_path = file_path.replace(".xlsx", ".docx")
doc.save(output_path)
return output_path
if __name__ == '__main__':
app = QApplication(sys.argv)
window = ExcelToWordApp()
window.show()
sys.exit(app.exec())
运行程序,效果如下:
对于打包的需求,腾讯云AI代码助手推荐使用 PyInstaller。
如图,腾讯云AI代码助手给出了打包命令和步骤,我们无需复制命令,只需要点击命令右上方的最后一个终端图标,就会自动在终端中运行命令。
等待打包命令运行完成,在dist目录下生成了 ExecelToWordConverter 可执行程序。点击运行就弹出了程序界面。
最后,使用腾讯云AI代码助手生成一个操作手册,便于使用者阅读。输入提示词:
#Codebase 写一个ExcelToWordConverter操作手册
这里依旧使用 Codebase指令,这样就能从项目中识别出到ExcelToWordConverter是如何生成的,然后生成操作手册。
通过对腾讯云AI代码助手的使用,深刻体验到腾讯云AI代码助手在搭载了满血版DeepSeek之后,在编码能力方面的提升。同时,Codebase使AI编码的能力突破了单个文件的限制,让AI对整个项目有了更好的理解,快速帮我实现了Excel转Word工具的程序开发、界面设计以及程序打包功能。
在使用腾讯云AI代码助手的过程中,调用满血版DeepSeek及其流畅,没有出现繁忙或者报错的情况,针对于之前的版本,对于答案输出的格式也进行了优化,更便于阅读。@腾讯云AI代码助手
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。