封装一个自动计算输入框组件

48 篇文章 3 订阅
29 篇文章 1 订阅

说在前面

最近在做一个统计表单录入功能,每一个表单项都需要自己先计算好总数再录入,这样操作显得有些繁琐,所以就想着可不可以将计算过程也集成到输入框里,这样我们可以直接输入算式,然后由输入框来完成计算,最后直接得出结果,于是就封装了一个可以自动计算算式的输入框组件。

体验地址

http://jyeontu.xyz/jvuewheel/#/JAutoCalcInputView

代码实现

输入框聚焦

@focus="isinputFocus = true"

输入框聚焦的时候将isinputFocus置为true,以显示计算结果。

输入框失焦

inputBlur() {
    setTimeout(() => {
        this.isinputFocus = false;
    }, 200);
}

当输入框失去焦点时,使用setTimeout延迟200毫秒将isinputFocus设置为false,延时主要是为了保证点击输入结果后可以触发点击事件。

输入框输入

handleInput() {
    const sum = this.doCalc();
    if (!sum) {
        this.calcRes = "";
        return;
    }
    this.calcRes = sum;
    this.$emit("input", this.inputVal);
}

监听输入框的input事件,调用doCalc方法计算表达式的结果,如果结果有效,则更新calcRes,并通过$emit触发input事件,将当前的输入值inputVal传递给父组件。

计算算式结果

doCalc() {
    if (!/[0-9\+\-\*\/\(\*\)]/.test(this.inputVal)) {
        return "";
    }
    try {
        const sum = eval(this.inputVal);
        return sum;
    } catch (error) {
        return "";
    }
}

首先检查inputVal是否只包含有效的数学表达式字符,然后使用eval函数计算表达式的值。如果计算出错,则捕获异常并返回空字符串。

这里计算算式的方式有多种,我选择了比较简单的直接实用eval函数来进行计算,可能会存在一些风险,大家也可以换成自己喜欢的方式来计算,比如使用栈来模拟算式计算过程进行计算,这个后面有时间可以写一篇文章再展开说下。

组件库

组件文档

目前该组件也已经收录到我的组件库中,组件文档地址如下:
http://jyeontu.xyz/jvuewheel/#/JAutoCalcInputView

组件内容

组件库中还有许多好玩有趣的组件,如:

  • 悬浮按钮
  • 评论组件
  • 词云
  • 瀑布流照片容器
  • 视频动态封面
  • 3D轮播图
  • web桌宠
  • 贡献度面板
  • 拖拽上传
  • 自动补全输入框
  • 图片滑块验证

等等……

组件库源码

组件库已开源到gitee,有兴趣的也可以到这里看看:https://gitee.com/zheng_yongtao/jyeontu-component-warehouse

🌟觉得有帮助的可以点个star~

🖊有什么问题或错误可以指出,欢迎pr~

📬有什么想要实现的组件或想法可以联系我~

公众号

关注公众号『前端也能这么有趣』,获取更多有趣内容。

说在后面

🎉 这里是 JYeontu,现在是一名前端工程师,有空会刷刷算法题,平时喜欢打羽毛球 🏸 ,平时也喜欢写些东西,既为自己记录 📋,也希望可以对大家有那么一丢丢的帮助,写的不好望多多谅解 🙇,写错的地方望指出,定会认真改进 😊,偶尔也会在自己的公众号『前端也能这么有趣』发一些比较有趣的文章,有兴趣的也可以关注下。在此谢谢大家的支持,我们下文再见 🙌。

### 回答1: Excel是微软公司开发的一款电子表格软件,用于进行数据处理和数据分析。Excel文件的扩展名为.xlsx,它可以方便地对数据进行整理、计算、存储和展示。而将Excel封装成exe实例是指将Excel文件转化为可执行文件(exe),这样用户无需安装Excel软件,只需双击exe文件即可运行Excel功能。 Excel封装成exe的主要目的是方便用户在没有安装Excel软件的情况下使用Excel的功能。这对于一些没有购买正版Office或者不常用Excel的用户来说尤为重要。同时,将Excel封装成exe也有助于简化操作流程,提高用户的使用便捷性。 具体实现Excel封装成exe的方式有多种,常见的有使用第三方软件或编程语言进行封装。在封装过程中,需要将Excel文件和Excel软件的相关组件一同打包进exe文件中,以保证所有Excel的功能可以正常运行。另外,还需设置相应的界面和交互逻辑,使用户能够方便地操作exe文件进行数据的编辑、计算和图表展示等功能。 封装成exe后的Excel文件在功能上与原始Excel软件基本一致,用户可以使用基本的数据处理功能、公式计算功能、数据图表功能等。然而需要注意的是,封装成exe后的Excel文件可能存在一定的功能限制,如无法使用某些宏、插件或高级功能。 总之,将Excel封装成exe实例是为了方便用户在没有安装Excel软件的情况下使用Excel的功能。它可以简化操作流程、提高使用便捷性,对于没有购买正版Office或者不常用Excel的用户来说是一种很好的解决方案。 ### 回答2: Excel是一款功能强大的电子表格软件,而将Excel封装成EXE可执行文件则能够提供更加便捷和独立的应用体验。 将Excel封装成EXE实例的过程如下: 首先,我们需要使用VBScript(Visual Basic Scripting Edition)编写一个宏程序。宏程序的功能可以根据我们的需求进行定制,例如自动填充数据、批量计算等操作。 然后,我们打开Excel并导航至工具栏中的“开发者”选项卡,点击“Visual Basic”按钮进入Visual Basic for Applications(VBA)界面。在此界面中,我们将编写的VBScript代码复制粘贴到一个新的模块中。 接下来,我们需要添加一个用户窗体。通过在“开发者”选项卡中点击“插入”按钮,选择“用户窗体”并添加到Excel文件中。这个用户窗体将提供一个GUI界面,方便用户进行操作。 在用户窗体上,我们可以添加各种功能按钮和输入框等控件,以便用户能够方便地输入数据或进行其他操作。我们可以使用VBA语言编写相应的代码,实现用户界面与Excel数据的交互。 完成用户窗体的设计后,我们需要保存并关闭VBA界面,并返回Excel界面。在Excel文件中,我们可以调整工作表的显示和布局,设置用户输入数据的范围和验证规则,使其与用户界面保持一致。 最后,我们需要将Excel文件保存为EXE可执行文件。我们可以使用第三方软件将Excel文件转换为EXE格式,或者使用VBA代码进行保存。保存后,我们就可以将这个EXE文件分享给其他人使用。 通过将Excel封装成EXE实例,我们可以将复杂的Excel操作简化为一款独立的应用程序,用户无需安装Excel即可使用其中的功能。这种方式方便易用,具有较高的兼容性,适用于各种场景,如数据处理、数据分析等。 ### 回答3: Excel 是一款功能强大的办公软件,很多人使用它来处理数据和制作报表。有时候,我们可能需要将 Excel 文件封装成可执行文件(exe)实例,以便在没有安装 Excel 的计算机上运行。 要实现将 Excel 文件封装成 exe 实例的目的,我们可以采取以下步骤: 1. 首先,我们需要借助 Visual Basic for Applications(VBA)来编写宏代码。打开 Excel 文件后,可以通过按下 "Alt+F11" 快捷键来打开 VBA 编辑器。 2. 在 VBA 编辑器中,我们可以编写自己的 VBA 代码,实现 Excel 文件的特定功能。比如,我们可以添加自动计算公式、创建数据透视表、自动化数据处理等。通过 VBA 编写的宏代码将成为我们封装成 exe 文件的核心部分。 3. 接下来,我们使用 VBA 编辑器中的发布功能将我们的 VBA 代码保存为可执行的文件。在发布过程中,我们可以指定保存位置、文件名和其他相关设置。 4. 保存完成后,我们会得到一个 exe 文件。这个 exe 文件可以在没有安装 Excel 软件的计算机上运行,只要操作系统能够支持 VBA。 通过这样的方式,我们成功将 Excel 文件封装成了一个 exe 实例。这个 exe 文件不再需要安装 Excel,用户可以直接运行它,享受 Excel 的功能。 封装 Excel 文件成 exe 实例的好处在于,它可以使得 Excel 文件更加便捷地在各种环境中使用。同时,由于 exe 是独立运行的,用户无法修改其中的 VBA 代码,可以保护代码的安全性。 需要注意的是,封装后的 exe 实例在使用时仍然需要计算机上已安装的相关组件的支持,比如.NET Framework、VBA 运行时环境等。 总之,通过使用 VBA 编写宏代码,并将其保存为可执行的 exe 文件,我们可以将 Excel 文件封装成 exe 实例,实现在无需安装 Excel 的计算机上使用 Excel 功能的目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JYeontu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值