部署DeepSeek模型,进群交流最in玩法!
立即加群
发布
社区首页 >专栏 >腾讯云AI代码助手 | 满血DeepSeek实现一个Excel转Word工具

腾讯云AI代码助手 | 满血DeepSeek实现一个Excel转Word工具

原创
作者头像
叫我阿柒啊
发布2025-03-04 17:47:20
发布2025-03-04 17:47:20
2520
代码可运行
举报
运行总次数:0
代码可运行

前言

最近,腾讯云开发者社区推出了@你的 AI 编码搭子,满血开发拿鹅厂周边~的活动,只需要在 DeepSeek R1 满血版的腾讯云AI代码助手之后,在B站/小红书/腾讯云开发者社区 /CSDN/今日头条等任何技术社区分享发布 tencent-deepseekR1 模型使用体验,就可以参与 100% 获得鹅厂周边的抽奖活动,每日再评选 3位 优质反馈用户加赠腾讯定制周边露营桌。

年初处于新项目立项和旧项目结算的阶段,作为一个开发人员,就要写cosmic来衡量自己一年的工作内容,就需要经常和excel和word打交道。很多时候就是根据excle中的内容,在word中生成相应的标题和正文。

为了减少这种繁琐的工作,也为了体验一下腾讯云AI代码助手和DeepSeek满血版的能力,今天就看看是否能用腾讯云AI代码助手,在零代码的情况下帮我实现这样的一个工具。

腾讯云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模块实现我们的需求,具体代码如下:

代码语言:python
代码运行次数:0
复制
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的基础上,生成了新的代码。

具体代码如下:

代码语言:python
代码运行次数:0
复制
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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 腾讯云AI代码助手
    • 安装
    • 选择模型
  • 程序开发
    • 需求分析
    • 提示词
    • 代码生成
  • 打包程序
    • 界面设计
    • 打包
    • 操作手册
  • 结语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档