@程序员,你们还在用网上乱找的方法导入导出Excel么,我们给你造了个轮子!!!!!
程序员的显著特点
有一天跟一位同事跟我闲聊,讨论起过去若干年软件行业的感受,他问了个问题:你觉得一个好的软件工程师最显著的特点是什么?
我想了一会,说:大概是坐得住吧。
某种意义上来说,在互联网技术飞速发展的今天,信息的洪流总是无声无息间把我们掩埋,一不小心,可能就感觉自己似乎已经out了。
当然,信息有良种,也有莠子,有的信息能够让我们收获颇多,但是大部分信息其实都是八卦信息,与大家的关系并不大。
然而我们依然容易沉迷于八卦信息之中,总觉得能够收获什么。其实往往就是虚度光阴。
哪怕是那些专注于技术领域的大群们,也难免在某段时间过后,变成一个个水群,然后兴趣平平,不了了之。

造轮子,优秀开发者的共同之选
技术群里经常讨论的话题大概是某些开源轮子。尤其是.net的群,有时候遇到问题,就会有人说,要是造个某某轮子就好了,同样的东西隔壁java就有;或者是某某轮子出了个bug,然后集体声讨会开始,说作者连这么简单的问题都没考虑到;或者像ngnix卖了大价钱了,有人说,这东西我很多年前就有这个想法,要是当时就做了,那这个发财的一定就是我了。
然后长沙互联网社区的胡子哥有一句口头禅特别有用:你别想这想那,想那么多什么用都没有,你倒是干啊,别老想干失败了啊,万一干成功了呢?
所以在这个时代冷静的思考、时刻保持学习的态度,能够坐得住,大概是成为专业开发者的第一步。
而成为专业开发者之后,通过一个开源项目来练手,一定是一个非常不错的选择,在gayhub之上,许多不同技术类型的开发者都借助平台开创了自己的品牌,他们做了一个个优秀的开源组件,既成就了自己的价值,更是帮助了大量对组件有需求的开发者。前有vue尤雨溪,后有涛思数据陶老师,他们就是中国开发者圈子中的英雄伟人。
好吧,要撸一个vue.js是真的不容易,要做一个TEngine更是难上加难,那能不能挑个看起来简单的小轮子,例如excel的导入导出吧。
额,看起来很简单的东西,哪里有那么简单呢?

造轮子容易么?
造一个轮子,开头容易做好难。首先你得开始干,其次你得把事情干好,再次,你还得坚持。
然后你得做个每一个单元测试,还得考虑各种极限情况,现在开发者很挑剔啦,不仅要求功能齐全,还得性能优异(虽然大部分客户不一定用的到),还得考虑多种数据格式,你还得经常解决issues上大家提出的反馈并及时的修复bug,好吧,能够把这一趟水梭完已经很不容易了。然后你把你的轮子推送到了gayhub上,难免会在一些群里做一些推广。
于是你会遇到键盘侠们,他们都在吐槽说你干的这个东西:这么简单的东西,一个实习生就会干了。。当然,要让他们来干,除了从网上抄现成的代码,要自己撸,估计那几个单词怎么拼,都要花百度一下,正儿八经要把轮子造出来,估计得等十年也憋不出来了。。
有一位老师说得很有道理:中国不缺喷子,不缺那些所谓有想法的,缺的是能够把想法转化成显现实的人。

Magicodes.IE是什么,是怎么来的?
例如,长沙.NET社区的重要参与者李文强大佬和他的团队,就是这样一个善于把想法转换成现实的人。实际上这几个月来他们特别忙,基本上天天得特别晚才能回去,尤其是作为公司创始人的李文强,更是几乎天天都会加班到特别晚。
他说他大概是一个想法特别多的人,经常会碰出许多想法,但是由于时间实在是有限,许多开源组件都开始设计得挺不错,但由于开局太大、定制能力要求太高等众多原因逐渐的无法维护,最终不了了之。
这次他改变了想法,先设计一个比较易于拆卸的小轮子,实现一些基本功能,然后经过一波测试,获得了非常不错的反响,并获得了社区的认同,然后这个轮子也有幸得以成为NCC中的一个小组件。

Magicodes.IE:导入导出通用库,通过导入导出DTO模型来控制导入和导出,支持Excel、Word、Pdf和Html。
这确实是个非常灵巧的小轮子,虽然看起来很简单,但是他的功能还是很实用的,我相信大部分企业级应用开发者都值得拥有。
赶紧抛弃你们从网上下载的那些不靠谱的代码,把你们的Excel导入功能合并到这个小轮子上来吧!
下载地址:https://github.com/dotnetcore/Magicodes.IE
记住这个名字Magicodes.IE,Fork 一波,然后Star一波。。人生精彩从这里开始!。。

能看到这里的都是最优秀的程序员,升职加薪就是你了
@程序员,你们还在用网上乱找的方法导入导出Excel么,我们给你造了个轮子!!!!!的更多相关文章
- C#中缓存的使用 ajax请求基于restFul的WebApi(post、get、delete、put) 让 .NET 更方便的导入导出 Excel .net core api +swagger(一个简单的入门demo 使用codefirst+mysql) C# 位运算详解 c# 交错数组 c# 数组协变 C# 添加Excel表单控件(Form Controls) C#串口通信程序
C#中缓存的使用 缓存的概念及优缺点在这里就不多做介绍,主要介绍一下使用的方法. 1.在ASP.NET中页面缓存的使用方法简单,只需要在aspx页的顶部加上一句声明即可: <%@ Outp ...
- jxl导入/导出excel(网上的案例)
jxl导入/导出excel 1.jxl导入/导出excel案例,黏贴即可运行 package junit.test; import java.io.File; import java.io.IOExc ...
- 程序员新人怎样在复杂代码中找 bug?
分享下我的debug的经验 1. 优先解决那些可重现的,可重现的bug特别好找,反复调试测试就好了,先把好解决的干掉,这样最节约时间. 2. 对于某些bug没有头绪或者现象古怪不知道从哪里下手,找有经 ...
- (转)程序员新人怎样在复杂代码中找 bug?
我曾经做了两年大型软件的维护工作,那个项目有10多年了,大约3000万行以上的代码,参与过开发的有数千人,代码checkout出来有大约5个GB,而且bug特别多,open的有上千,即使最高优先级的s ...
- 黑马程序员——JAVA基础之抽象和接口 , 模版方法设计模式
------- android培训.java培训.期待与您交流! ---------- 抽象定义: 抽象就是从多个事物中将共性的,本质的内容抽取出来. 例如:狼 ...
- 程序员微机课系列—我的nodejs多版本管理方法
nodejs的多版本配置对于我来说一直都是一个较为头疼的事情.本人的开发工作会涉及electron以及前端,对于工作中使用的npm包(点名node-sqlite3和node-sass)在某些情况下,会 ...
- 你好,我是梁桐铭,.NET程序员,啰嗦下过去几年来的感悟吧
序 所有的文章都会有序言,我的当然也不例外. 因为职业和工作的关系,很少有时间陪伴家人,感谢妻子10年以来的容忍和支持,感谢女儿给我生活带来的乐趣. 希望孩子长大了之后能热爱编程(可以不用以它谋生). ...
- 给IT新男的15点建议:苦逼程序员的辛酸反省与总结
很多人表面上看着老实巴交的,实际上内心比谁都好强.自负.虚荣.甚至阴险.工作中见的多了,也就习惯了. 有一些人,什么事都写在脸上,表面上经常得罪人,甚至让人讨厌.但是他们所表现的又未必不是真性情. 我 ...
- 程序员谈学习:我为什么要学习Linux?
http://kb.cnblogs.com/page/196876/ 好长时间没好好写点东西了,前段时间由于项目的需要出差了一个多月,期间各种加班,每天晚上加班到十点,回到宾馆实现是没什么精力再写博客 ...
随机推荐
- part11-LED驱动程序设计-part11.1-字符设备控制
- 12 Top Open Source Data Analytics Apps
1. Hadoop It would be impossible to talk about open source data analytics without mentioning Hadoop. ...
- USDT钱包安装
安装USDT钱包 wget https://bintray.com/artifact/download/omni/OmniBinaries/omnicore-0.4.0-x86_64-linux-gn ...
- 利用伪类选择器与better-scroll的on事件所完成的上拉加载
之前给大家分享过一篇上拉加载 利用了better-scroll的pullUpDown 和DOM元素的删除添加 感觉那样不太好 今天给大家分享一个不同的上拉加载思想 代码如下 class List { ...
- ubuntu环境变量的三种设置方法
一:设置环境变量的三种方法 1.1 临时设置 export PATH=/home/yan/share/usr/local/arm/3.4.1/bin:$PATH 1.2 当前用户的全局设置 打开~/. ...
- 认识一下ES6的Reflect和Proxy
Reflect Reflect要替代Object的很多方法, 将Object对象一些明显属于言内部的方法放到了Reflect对象上,有13个方法 Reflect.apply(target, thisA ...
- 洛谷 3177 [HAOI2015] 树上染色
题目描述 有一棵点数为 N 的树,树边有边权.给你一个在 0~ N 之内的正整数 K ,你要在这棵树中选择 K个点,将其染成黑色,并将其他 的N-K个点染成白色 . 将所有点染色后,你会获得黑点两两之 ...
- let & const 命令
一.let命令 用于声明变量. 1) 所声明的变量只在let命令所在代码块内有效.(块级作用域) { let a=10; var b=1; } a // ReferenceError: a is no ...
- Android本地数据存储: ASimpleCache
一:前言 在上一篇博客Android本地数据存储: Reservoir 博客中,我提到,除了Reservoir库,还可以采用ASimpleCache开源库,来实现本地数据存储.昨天并没有仔细的对比Re ...
- Element-ui学习笔记3--Form表单(一)
Radio单选框 要使用 Radio 组件,只需要设置v-model绑定变量,选中意味着变量的值为相应 Radio label属性的值,label可以是String.Number或Boolean. & ...