小程序中如何实现excel数据批量导入

1 建立数据

要想将数据入库,就先需要建立数据源。登录微搭控制台,点击数据源,点击新建数据模型

小程序中如何实现excel数据批量导入

输入名称和标识

小程序中如何实现excel数据批量导入

数据源建立之后需要创建字段,点击添加字段

小程序中如何实现excel数据批量导入

初学者最大的疑问是我需要建哪些字段,字段是个什么概念?我们还是先看一下我们的腾讯文档的在线表格

小程序中如何实现excel数据批量导入

会用excel的人都知道,excel里有行和列的概念。那我们的字段其实是列,每一列都对应一个字段。字段的类型其实是和单元格的内容是相关的。比如我的A2单元格是张三,明显是存的字符,那么我们的类型就是文本。C2是出生日期,应该是日期类型。D2是联系电话,可以选择文本也可以选择电话类型。

明白了这个基础概念之后,我们分别添加一下字段,一共是四个字段,姓名、性别、出生日期、联系电话

小程序中如何实现excel数据批量导入

小程序中如何实现excel数据批量导入

小程序中如何实现excel数据批量导入

小程序中如何实现excel数据批量导入

2 编制入库的代码

我们上一节介绍了如何创建连接器来对接腾讯文档,不会的同学可以翻看上一篇文章添加腾讯文档连接器

读取腾讯文档的数据分为读取sheet,根据sheet获取每一行的数据。因为是入库,还需要将解析好的数据封装到对象中,调用批量新增的方法入库。我们来一步步讲解一下。

2.1 创建低码方法

要想入库,先需要创建一个低码方法。点击左上角的低码编辑器进入到代码界面

小程序中如何实现excel数据批量导入

低码编辑器打开之后会定位到当前页面,在handler旁边点击+号来创建低码方法

小程序中如何实现excel数据批量导入

首先需要输入一个方法名,方法名较好能望文知义,我们可以定义一个batchAdd方法

小程序中如何实现excel数据批量导入

平台会自动生成代码结构

小程序中如何实现excel数据批量导入

初学者因为没有系统的学习过编程,往往容易犯的错误是自由发挥,随意编制代码。我们讲解一下这里的知识点。一般我们在handler里定义的方法叫函数,函数由几部分组成,函数名、入参、出参(或者叫返回值)

export default function 是函数的定义,这里叫匿名函数,就是不给函数起一个名字。如果函数体里写了await了,这个函数需要改写成异步函数,变成 export default async function

小括号里边的叫入参,多个参数以逗号分隔。我们这里其实只有一个入参,是{event,data}。用一对儿大括号包裹的叫对象,对象里是具体的入参。

event是事件对象,一般我们可以获取到组件里的值,data是如果调用事件传参了,可以直接从data里获取值。具体如果希望看到值的我们可以使用打桩的技术,所谓的打桩就是在控制台输出具体的值。

比如我们可以这样写

export default function({event, data}) {  console.log(event,data)}

打好桩之后,如何看结果呢?事件必须绑定到组件上,组件产生的各种的动作可以触发事件。就像我们这个批量入库,需要用户主动触发,就需要放置一个按钮,并且绑定点击事件,来触发批量新增的方法。

小程序中如何实现excel数据批量导入

小程序中如何实现excel数据批量导入

事件绑定好之后在哪看结果呢?点击开发调试工具来看具体的输出

小程序中如何实现excel数据批量导入

这时候点击一下按钮就可以看到对应的输出

小程序中如何实现excel数据批量导入

输出的结果还是蛮复杂的,不同的组件产生的事件对象不同,里边的内容不同,我们会在具体的场景进行深入的讲解。为啥本篇会先讲一些基础操作呢?因为不少粉丝是按照教程的步骤一步步操作的,不懂基本的操作有时候会乱粘贴一气,然后就是各种各样的报错,还不知道从哪看错误,浪费了不少时间。

2.2 低码中调用连接器

我们上一篇是使用变量的方法调用了连接器,这一篇我们使用低码方法调用连接器。为了获取腾讯文档中的数据,先需要获取工作表的信息。我们复习一下变量中我们是如何调用的

小程序中如何实现excel数据批量导入

这里是调用了getSheets方法,并且传入了bookID,低码中是通过api的方式来调用的,在方法中输入如下代码

const bookID = "DWkxMSFlkU1l2YkRo";   const { sheetData } = await app.cloud.callConnector({    name: 'txwd_jnegl1q',     methodName: 'getSheets',     params: {      bookID,    },  });console.log(sheetData)

这里的bookID是通过腾讯文档分享链接的时候获取到的,{sheetData}是解构赋值的意思,可以直接从返回结果里获取对应的值。可以看一下控制台打印的结果

小程序中如何实现excel数据批量导入

要怎么看返回结果呢,一对儿中括号表示数组的意思,展开数组名列前茅个元素的下标是0,数组里的元素是个对象,对象是以一对儿大括号表示的,对象里边又有具体的属性和方法。我们这里边需要的是sheetID,cloumnCount,rowCount。

了解了之后我们就定义变量来接收返回值,输入如下代码

let sheetID = sheetData[0].sheetID  let rowCount = sheetData[0].rowCount  let columnCount = sheetData[0].columnCount  console.log(sheetID, rowCount, columnCount)

看控制台的打印结果

小程序中如何实现excel数据批量导入

接着我们就需要根据返回的结果调用获取单元格的方法,我们使用变量的时候是这么做的

小程序中如何实现excel数据批量导入

代码中是这样获取

const { rows } = await app.cloud.callConnector({    name: 'txwd_jnegl1q',     methodName: 'getRows',     params: {      bookID,      sheetID,      rows: `2-${rowCount}`     },  });console.log(rows)

这里小伙伴不明白的就是这一句2-${rowCount},用两个反引号包裹的表示模板字符串,里边如果使用${}这种语法的表示变量,代码只要一执行就会翻译成2-3,读取第二行、第三行的数据。我们看一下输出的结果

小程序中如何实现excel数据批量导入

textTypes表示每一列的字段类型,textValues表示具体的值。字段类型我们不需要,只需要解析出具体的值就可以

这样每行的数据也解析出来了,就需要按照需要的格式整理入库了,下边是入库的代码

const newRecords = [];  const columns = "xm|xb|csrq|lxdh";   for(let r = 0; r < rowCount - 1; r++) {    const { textValues } = rows[r];    const inputParams = {};    const cols = columns.split('|');    cols.forEach((c, i) => {      inputParams[c] = textValues[i];    });    newRecords.push(inputParams);  }  await app.cloud.callModel({    name: 'txwdsjy_q6rop6n', // 数据模型标识    methodName: 'wedaBatchCreate', // 新增多条的方法标识    params: {      records: newRecords,    },  });

这里columns是内数据源的每一个字段的字段标识,可以去数据源那块找到

小程序中如何实现excel数据批量导入

其余的代码因为涉及到具体的编程知识,你直接复用就可以,感兴趣的同学可以学习一下javascript,了解了语法之后就可以读的懂

写好之后点击按钮,发现有两条数据已经写入数据库了

小程序中如何实现excel数据批量导入

但是有个问题是出生日期没有正确的读出来,入库的日期都是1970-01-01。如果有解决办法的小伙伴可以评论区留言,也方便大家学习。

3 最终的代码

export default async function ({ event, data }) {  console.log(event, data)  const bookID = "DWkxMSFlkU1l2YkRo";  const { sheetData } = await app.cloud.callConnector({    name: 'txwd_jnegl1q',     methodName: 'getSheets',     params: {      bookID,    },  });  console.log(sheetData)  let sheetID = sheetData[0].sheetID  let rowCount = sheetData[0].rowCount  let columnCount = sheetData[0].columnCount  console.log(sheetID, rowCount, columnCount)  const { rows } = await app.cloud.callConnector({    name: 'txwd_jnegl1q',     methodName: 'getRows',     params: {      bookID,      sheetID,      rows: `2-${rowCount}`     },  });  console.log(rows)  const newRecords = [];  const columns = "xm|xb|csrq|lxdh";     for(let r = 0; r < rowCount - 1; r++) {    const { textValues } = rows[r];    const inputParams = {};    const cols = columns.split('|');    cols.forEach((c, i) => {      inputParams[c] = textValues[i];    });    newRecords.push(inputParams);  }  await app.cloud.callModel({    name: 'txwdsjy_q6rop6n',     methodName: 'wedaBatchCreate',     params: {      records: newRecords,    },  });}

“小程序中如何实现excel数据批量导入”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

文章标题:小程序中如何实现excel数据批量导入,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/26792

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022年9月18日 下午10:45
下一篇 2022年9月18日 下午10:46

相关推荐

  • 用于黑客渗透测试的Linux工具有哪些

    用于黑客渗透测试的 Kali Linux 工具 Kali Linux 预装了几种类型的工具。如果你发现有的工具没有安装,只需下载并进行设置即可。这很简单。 1、Nmap Nmap Nmap (即 “ 网络映射器(Network Mapper)”)是 Kali Linux 上很受欢迎的信息收集工具之一…

    2022年9月1日
    33100
  • 怎么用javascript实现自定义事件功能

    概述 自定义事件很难派上用场? 为什么自定义事件很难派上用场,因为以前js不是模块化开发,也很少协作。因为事件本质是一种通信方式,是一种消息,只有存在多个对象,多个模块的情况下,才有可能需要用到事件进行通信。而现在有了模块化之后,已经可以使用自定义事件进行各模块间协作了。 哪里用得到自定义事件? 事…

    2022年8月27日
    16400
  • mysql中sum()函数如何用

    在mysql中,sum()函数用于计算一组值或表达式的总和,语法为“SUM(DISTINCT expression)”,DISTINCT运算符允许计算集合中的不同值。sum()函数需要配合SELECT语句一起使用,如果在没有返回匹配行SELECT语句中使用SUM()函数,则SUM()函数会返回NUL…

    2022年9月26日
    42800
  • windows会声会影x5如何导出视频

    会声会影x5导出视频的方法 1、我们可以在界面的左上角或者上方找到“分享”按钮,点击它。 2、然后选择想要导出的方式,一般我们选择“创建视频文件”。 3、然后我们点击如图“创建视频文件”可以选择视频的格式。 4、这里我们选择mp4格式(大家可以根据需要自行选择),然后还可以选择更细致的格式。 5、选…

    2022年9月15日
    15300
  • 销售管理软件

    销售管理软件顾名思义就是专门管理销售人员的软件,这种管理软件在企业中是比较流行的,通过线索的精细化管理、客户分级分层管理、标准化销售流程管理,商机管理,产品价格、促销返利、订单管理、销售预测与数据分析等功能,实现线索到现金的完整业绩闭环,提升销售工作效能,驱动业绩增长,提升客户满意度。 现在无论什么…

    2022年3月24日
    34700
  • word字体放大如何弄

    word字体放大的方法 1、先选中需要放大的字体,然后点击开始菜单中的增大字号。 2、选中字体之后在悬浮框中点击字体大小就可以设置了。 3、选中需要放大的字体之后,点击上方菜单栏中的输入框,直接在里面输入你要的字号。 以上就是“word字体放大如何弄”这篇文章的所有内容,感谢各位的阅读!相信大家阅读…

    2022年9月10日
    16800
  • windows c盘隐藏文件怎么显示

    c盘隐藏文件显示的方法: 1、首先打开进入c盘,然后点击上面的“查看”。 2、然后点击右侧的“选项”。 3、在弹出的选项中点击“查看”。 4、下拉,勾选“显示隐藏的文件、文件夹和驱动器”并点击“应用到文件夹”确定即可。 感谢各位的阅读,以上就是“windows c盘隐藏文件怎么显示”的内容了,经过本…

    2022年8月27日
    98000
  • mysql有什么权限表

    mysql的权限表有:1、user表,用来记录允许连接到服务器的账号信息,该表里启用的所有权限都是全局级的,适用于所有数据库;2、db表,存储了用户对某个数据库的操作权限;3、tables_priv表,用来对单个表进行权限设置;4、columns_priv表,用来对单个数据列进行权限设置;5、pro…

    2022年9月19日
    25100
  • vlookup函数精确匹配怎么选择

    vlookup函数精确匹配是1还是0 答:vlookup函数精确匹配是0 1、0代表的是精确匹配,1代表的是模糊匹配。 2、此外,FALSE也可以代表精确匹配,true代表近似匹配。 3、使用精确匹配,就是必须要查找值必须完全匹配,才会导出结果。 4、而模糊匹配有类似值就会匹配到结果中。 5、我们可…

    2022年9月22日
    23300
  • 关系数据库实现数据之间联系的方法叫什么

    关系数据库实现数据之间联系的方法是公共属性;通过一个表中包含另一个表主键的方法实现数据之间的联系,外键是用于建立两个表数据之间联系的属性,外键可以由一个或多个属性组成,外键值引用被参照主键的值,使两个数据之间建立了联系。 本教程操作环境:windows10系统、DELL G3电脑。 关系数据库实现数…

    2022年9月2日
    21300
联系我们
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部