云计算、AI、云原生、大数据等一站式技术学习平台

网站首页 > 教程文章 正文

Python+Pandas+Flask+Vue:模拟WPS表格合并收费功能!

jxf315 2024-12-13 14:10:42 教程文章 36 ℃

上一篇文章写了利用pandas实现表格合并功能:Pandas实现多层级多Sheet的Excel文件合并!

那么如何将该功能分享给不懂Python的用户使用呢?那就是开发一个图形界面。

图形界面有两种:GUI和Web页面。

由于本人比较熟悉Web,因而选择了Web应用开发。结合自己的技术栈和需求,最终选择了Flask和Vue。

技术简介

Flask简介:: Flask 是一个功能强大且灵活的 Web 开发框架,适用于从简单的单页应用到复杂的 API 服务开发。其轻量级的特性和丰富的扩展使得开发者能够根据需要快速构建并扩展应用。

Vue简介:Vue.js 是一个功能强大且灵活的前端框架,适用于从简单的组件到复杂的单页应用的开发。它易于学习和使用,拥有丰富的生态系统和强大的工具支持,使开发者能够高效地构建现代 Web 应用。

操作演示

首先进入合并页面,选择文件,可以选择多个文件。

选择开始合并,后台进行合并处理。完成后,生成下载任务。

选择下载并打开,即可看到最终的合并结果。

核心代码

前端主要使用了ElementPlus的上传文件功能。

<el-upload :on-change="onChange" :http-request="onUpload" ref="uploadRef" :action="action" :auto-upload="false"
  multiple :on-success="handleSuccess" :on-error="handleError">
  <template #trigger>
    <el-button type="primary">选择文件</el-button>
  </template>
  <el-button class="ml-3" type="success" @click="onUpload">
    开始合并
  </el-button>
</el-upload>

后端读取前端的上传文件,并返回合并后的文件。

@excel_blueprint.route("/excelConcat", methods=["post"])
def excel_concat():
    files = request.files
    df = pd.DataFrame()
    for k, f in files.items():
        excel_file = pd.ExcelFile(f)
        for sheet_name in excel_file.sheet_names:
            df_temp = pd.read_excel(f, sheet_name=sheet_name)
            df = pd.concat([df, df_temp])
    output = io.BytesIO()
    with pd.ExcelWriter(output, engine='xlsxwriter') as writer:
        df.to_excel(writer, index=False, sheet_name='Sheet1')
    output.seek(0)
    return send_file(output, mimetype=MyMimeType.XLSX)

总结

Flask+Vue3+Pandas可以实现很多Excel操作功能,实现办公自动化。

最终的应用可以使用前后端部署,让远程用户访问。也可以利用Pyinstaller等功能,将前后端功能打包在一起实现点击运行。

您日常生活中有什么繁琐的Excel操作需求呢?欢迎交流!

#Python##Excel##Flask#

最近发表
标签列表