Budibase数据导出实操:3个动作出文件
【免费下载链接】budibaseAI agents, automations and apps that run your operations. Model agnostic.项目地址: https://gitcode.com/GitHub_Trending/bu/budibase
周五下午五点,业务方要本周的销售明细报表,数据却还躺在系统里。用Budibase的数据导出功能,表格自己就能拉出来:打开表格视图,选个格式,文件直接落到下载文件夹。这篇走一遍出文件的最短路径,讲清不同场景怎么选路线,以及想动手改时源码在哪里看。
表格视图里导出文件的最短路径
在后台的表格视图里,先勾选你需要的行,不勾就整表导出。然后点表格上方按钮区的"导出",弹出的小面板会先告诉你这次导出哪些行:选中的行,还是全部。面板下方是格式下拉框,能选到CSV、JSON和JSON with Schema,第三个会把表结构一起附上。确认之后浏览器直接保存文件,文件名是export加格式后缀。如果表上已经加了筛选和排序,导出结果会跟着这些条件走,不用二次处理。
按场景选导出路线
批量数据备份:想在系统外留一份存档,选CSV最省事,任何表格软件都能打开,服务端已经处理了引号转义。要工作区级别的存档,走的是备份导出接口,下文幕后部分有位置。别指望手动点导出,容易漏。
跨系统迁移:接手方是另一个低代码平台或数据库导入工具时,选JSON with Schema。这个格式把列定义和行数据包在一起,对方能直接还原表结构,不用逐列问类型。
交给业务方分析:业务方不习惯打开原始文件,先用筛选缩小范围。"只导出三季度逾期订单"比"给你整张表"清楚。导出成CSV,对方粘进报表就能用。
接进开发流程:导出是高频动作时,不必每次手点。应用设计界面可以把按钮动作设成触发数据导出,相关控件在ButtonActionEditor,该目录下能查到可用的按钮动作类型,包括ExportData的实现。程序化调用走行级导出路由,定义在row.ts,该文件里能查到/api/:sourceId/rows/exportRows的路径和参数。
想改导出逻辑,先看这几个文件
序列化的代码都在exporters.ts,该文件里能查到三种格式如何把行变成文本:CSV处理引号转义、对象值转成JSON字符串,带Schema的JSON会先过滤掉自动列。整表导出端点exportView在views.ts,该文件里能查到导出请求如何读取视图元数据、如何决定附件文件名、如何触发导出完成事件。定时、触发式导出用automations/,该目录下是自动化的步骤定义、触发逻辑和邮件附件发送——想"每天早上自动把数据文件发到邮箱",在这里拼。
导出排坑:行数不对、字段变符号、文件过大
只选了一半行,导出来却是整张表。原因:导出逻辑按"有没有选中行和筛选条件"判断,两者都空就默认全量。解法:先勾选或设好筛选,点确认前看一眼小面板里的行数提示。
CSV打开后某些列是一长串符号。原因:对象字段(数组、嵌套对象)被exporter做了JSON序列化后写进单元格。解法:需要干净列就在表设计里用扁平字段,或改用JSON格式下游再处理。
导出文件过大、下载慢。原因:整表导出要一次性取全部行再序列化。解法:用筛选加选行拆批次,分几次导;纯备份需求直接走整工作区备份,不逐行导。
闭环走通后去哪深挖
到这里,界面勾行、下拉选格式、文件落盘的完整闭环已经走通,每一步的源码位置也都给了。想看参数细节,从视图控制器目录的两个文件入手;要搭定时自动导出流程,直接进automations目录拼步骤。
【免费下载链接】budibaseAI agents, automations and apps that run your operations. Model agnostic.项目地址: https://gitcode.com/GitHub_Trending/bu/budibase
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考