00:00
那我们来看看,那首先我们做市场活动之前,走出市场活之前,先做个技术准备啊,技术准备啊,你以后做其他的项目也是一样,通过分析要用到什么技术,假如这个技术以前不会,那你先研究技术,先别往下做呢,先研究技术,技术研究明白了再往下做好下边我们这个地方给大家研究一下,然后呢,大家首先第一个技术准备就是这样。要能够用Java代码来创建或者叫生成Excel文件,并且能够把我们的数据写到Excel文件里边,知道吧,所以我们这个地方就简单写一下,这个技术准备就是使用Java,使用Java来操作Excel文件。使用Java来操作Excel文件生成,或者往里边写数据是吧,这是我们说的,这或者叫这个就是生成吧,啊生成Excel文件,生成Excel文件知道吧?好,这是这个技术准备下边,下边咱是光生成文件还不行,还要能够把这个文件什么输出到浏览器让用户拿到是吗?所以我们这个网就把它叫做文件下来文件下,把服务器里边生成的文件下载到用户本地去知道吧,这两个技术准备我们一块儿来看一看,首先一个一个来看,首先看如何用Java生成Excel文件,知道吧,那用Java生成Excel文件,我们说用以前我们学的那一套ioapi生成不了。
01:28
做不了啊,IO只能生成那些没有格式的文件,就没有格式,就是没有格式的文件是什么,就是说你写这一下什么这个文件里边内容它存的时候,他没有什么行列什么之类的,也没有什么格式,什么颜色之类的,就把这些一个一个的字符,或者一个一个的字节,按照顺序依次什么排列就存里边了。这种文件叫做没有格式的文件,最典型的没有格式的文件就是文本文件,还有什么这个,还有我们的这些什么视频音频压缩包,图片啊,还有还有什么这我们的Java的Java,这Java原文件,JSP文件,Atl这些网页网页这些都叫没有格式的文件,知这些都是他们存储的时候没有格式,只没有说什么这个啊,什么字体呀,颜色呀,什么行啊什么列,它没有这些概念,所以这些文件那IO都能操作,嗯,但是这像这些什么有格式的文件,他操作了什么有格式的文件,最典型的叫Excel文件,Word文件,PDF文件,就是这些办公文档,还有那些power power的什么那些幻灯片,这些都叫有格式的文件,就他问怎么有格式的文件,但你看我们打开这个文件,你看它都有里边数据都有格式,来我们来找到我们这个地方有我们这个office有。
02:51
Excel表格吗?哪个地方上?
03:01
轮椅右边的就是土的。来了。哦,这个。该。这个是X套是吧,这个是X套吧,啊,这个是X套是吧,这个你看这个X套的,看这东西看它里边有什么,你看啊这。这个是吧,这个不用。嗯。哪一个这个对,这就这个把它打开这种ex。大家你看Excel文件你看吧,它有是吧,你看首先它有它有页是这叫页是吧,一个sheet页,当然你也可以加别的页,你是吧?啊加别的页,加很多页,页里边有什么有行啊,行里边有列啊,知道吗?这些第一列,第二列,我写的时候我不用按照什么顺序,从这先写第一列是吧,然后再写第二,再写第二列等等这些。
04:20
而且写数据的时候,他存的时候,他也不是说啊,这一列的数据,然后这一列数据就一个一个的挨着一个字符一个字符,一个字节一个字节的,然后呢,存在磁盘上,他也不是这么存的,知道吧,啊它什么它存的时候,包括这边框其实都是什么,都是数据。边框这些数据,而且边框这些数据有格式,有什么格式,边框我们可以设置它的边框的颜色,边框的这个粗细程度,还有边框和这个这一列和这一列两个边框之间的这个什么空隙,这些都可以设,包括里边这些数据的上,里边这些我们写的这些内容,你现在写这几个,它有格式,什么格式我可以变成变红色,然后呢,这字体的看我给加粗斜体,加上什么下划线等等,这些字体的大小我们都可以改,蛋哥,这些用你传统的那一套APIIO的那一套API,你操作不了这些。
05:15
因为这些都是数据格式,传统的IO那一套API它操作不了这个格式,知道吧,所以它的底层存储的机制是不一样的,所以我们这个IO你操作不了,那你说老师这像这些这些文件我也往里边写数据,想操作它的格式,想生成这么一个文件怎么办?Java提供另一套API,这一套API是什么?叫图形化API,对Java的有一套图形化图形化API,这套图形化的API到这这套这套这套API叫什么,他们就可以专门操作这种的吧,这种办公文档有格式的文件。有格子文,像word PDF,包括Excel这PowerPoint这些工作都属于这种有格式的文件,他为什么用这套API能能操作这些文件,怎么操作,叫图形化来V什么意思,但你看到这些东西,你写的这些内容是这些文字什么之类,其实它真正写的时候,它是按照图形给你显示的。
06:15
就按图形写的知道吧,所以它有套图形化的API,你要说你这颜色什么,背景色浅景色什么,这这些都是按图形来给你生成的是吧,它有一套图形化的API是吧?那你说这个图形化的API就我们现在没学,我们会吗?是吧,那不会是吧,那你说我那我们是不是还得学这套A啊。不,我们不学他,我们不学他,那不不学他,为为什么不学他,因为这一套这一套API太难了啊,就难我们就不学吧,关键是最主要的不是说只知他难案,还有什么学了它用的事。你费半天劲学它,学完之后呢,以后开发的时候我们说虽然导出导入的功能,虽然每一个项目都有,但是呢,并不是天天在用它。
07:05
所以大家我们费半天劲学到了,很多情况下不用它。那这个时候我们学了也白学,所以这套API我们压根不学,那不学的我们生成这种生成A套文件咋生成。那我们就生成不了了是吧,那生成不了,那我们开发它怎么办呢。对你不会,对不会的话,那你你没学对你来说就比较麻烦是吧,就比较麻烦是吧,那你甚至无从下手,那我现在让你生成生成Excel文件,那你肯定无从下手,那无从下手我又让让你生成,你怎么办呢。懂吧,你不擅长写他是吧,你不是开发这方面的,做这一方面开发的,对有人写好了是吧,对,只要是麻做Java开发,只要是麻烦的知吧。你就看一看是不是符合咱们那一类的那一类问题的特点,第一个麻烦,那肯定麻烦用这套API,大家我们没学知道吗。
08:02
那肯对你来说肯定麻烦,麻烦怎么,那你看看是不是这个功能是跟业务有关系的。是不是只有你导出市场活动才能用到生成Excel文件?那不是,那我导出线索,导出客户,或者我导一个学生信息,我导别的信息也要用到生成Excel问件,所以这个时候大家都会遇到这种问题,所以你就别想着自己写了,用Java生成这种办公文档,我们说都有差件了,有差别人已经帮你写好了,谁帮你写好了,专业人士帮你写好了,什么专业人士对专门做这种办公文档开发的就那些人,那些程序员帮你写好了,他们不干别的,他们不研究什么外部技术,Service维的建立,他们不研究这些。我们的Java有有多个发展方向,其中做办公文档的就是Java一个发展方向,我们不是这个发展方向的,我们是做外部开发的,我们是做外部开发的,我们学的都是外部技术,什么外部技术,Service JSP那些页面是吧,包括SC这些都属于外部技术,就我们主要是做外部方向发开开发的,所以我们不学它,但是有的人呢,不是做外部开发。
09:14
他的发展方向叫什么?都是办公文档,办公文档有这种公司专门做办公文档开发,知道吧,那些人不研究外部技术,什么service jb,他不研究这个,他只研究什么Java的这一套图形化的API,这是它的一个发展方向。知道吧。这时候我们要说的,这,那你说什么样的公司做这些。就像这个在前面时说这个office不好用,或者什么收费的什么,我们有一个替代一个软件叫什么,对WPS做这种软件的公司,那些程序员肯定研究这个东西,对他们肯定研究这些,对,但是他们他们不研究外部,这都是你要一个人说我全研究行不行,全研究当然行了,但你一个人的精力都是有限的,是吧,你既研究这个又研究那个,那你们公司干什么的,你不干不,你不干不,不写办公文档这种软件的开发,你不做这个,你研究它不值知道吗?不值,所以你有那个经理,你还外部技术啊。再一个他为什么专门研究办公文脑的,那他只研究办公脑,他就不研究外部吧,所以这些技术我们都不同的发展方向啊,但是我们要用他们知吧,他们都封装好了,就这些。
10:29
所以大家我们对我们而言的话,这套通讯化的学我们不学啊,我们不学啊,大家一到招聘网站上一看,招外部开发的程序员知道吧,我们说招外部开发程序啊,我们这个什么,基本上不会要求你会这一套图形化的API,不会要求你这个,这是我们说的这样,但你要用的话,直接用插件就行了,所以下边我们叫什么,下边我们就给大家看看操作使用Java操作Excel文件这种文件的这些插件到底有哪些,我们就把它叫做这些叫叫插件,这些插件其实市面上也有很多很多公司都推出了用Java操作这个骚R文件的这种插件,那吧,那最典型的最最流行的这些插件,我说有这两种插件。
11:13
一个是这个叫ITIT这个插件,这个插件比较有名,这是国外的一个公司开发了,知道吧,是IT这个插件做的非常好,知然后对我们这个,这是办公文档,它不但能操作Excel文件,Word文件,PDF文件,包括这个幻灯片等等,这些他都能操作。而且那个在什么,你这些办公文档,你在office软件里边,你想做什么事儿,用它这个代码,用它这个插件你都能做,知道吧,生成文件,删除文件,往文件里边填数据,然后修饰数据的各种格式,修饰各种偏框等等这些效果他全能做,知道吗?这是我们说这种插件,其实这个插件是非常强大的,而且用的也比较多,但是这个网这个插件是收费的,这个插件收费,因为他做得好,所以他收费的,嗯,但是他也有一些免费的项目,但是他免费的项目只能满足一些最基本的一些需求。
12:10
啊,最基本的一些需求,你想要一些特效,你得你得花钱了,你得买他这个插件,那你要是这种插件讲收费,他咋他咋收费,他他就是他这种插件要收费都这样收费,然后你联系他有客服,他有那销售,然后你联系完你买了,他买它,他说都按什么,按使用年限收费。使用年限收费,怎么使用年限入,你比如说你要你你想买两年的,你想买两年,使说使用他这个差价买两年的,这时候你把钱给他好了,他给你一个,他给你个这个什么注册码什么之类的,这些对激活码什么注册码之类的这些,然后呢,你用他呢,你你他然后呢,你下载他的那些什么那些那些这个程序那些那那封装好的那些什么那些这个这个压缩包,或者说加包,然后你把它什么把它加到你项里边,你可以用了,用完之后就可以生成Excel文件了,生成Excel文件从你从你买的那一天开始倒计时,你要买两年的,你用它生成的文件在两年之内。
13:13
这生成的这种生成的这些Excel文件你都可以用啊,生成这Excel你可以用,然后一旦超过两年用它这种技术生成的Excel文件呢,都加上都给你打上水印了,说你什么没注册什么之类的这些,不知道大家有有没有这种使用这种这个软件的这种经验。是对超过两年,超过两年就你也可以用它这种技术,但是呢,他都给你打上水印了,他给你输出的这些EXCEL5件都给你打上水印了吧,说未注册请购买什么之类,然后给你打一个超级链接,让你去买,去买完之后一激活,诶这个水印又去掉了,知道吧,就这意思,当然你记住啊,你也可以买更长的,更长这种年限,当然也可以买终身的,但是更贵而已,对那你说老师到底买多少年的,但前面给大家说了,我们做一个软件基本上不会用太长时间,一般你做一个软件费劲,做一个软件用五年,其实其实就比较长了,一般来讲大家买五年,基本上这个软件一一升级一报废,其实这其实他这个什么,他这个这个这个软件就是其实他我们买这种插件其实也没什么用,知道吧,所以一般来讲这这些我们他都是按时间收费,按按这种时间周期收费啊,所以大家简单了解一下,你们到公司,你们有可能你们公司也有可能用这种差件。
14:33
但是我们说这种插件收费的插件,一般中小型企业不太会用,知不不太用它,不用它这个我跟你说中小型企业它它在收费,它车收费,像这种软件一般来讲都很贵的,对吧,一年都多少钱的知道吧,所以中小型企业一般不花钱知道吧,除非那些大企业他不管你,他不怕花钱,他有的是钱,他你只要能够把项目做好他就行了。所以这些,所以说大概我说这些都是一些大型的这些软件公软件企业,或者是一些什么,你要给那些客户,有的是让客户去买,去让客户去买,就是你要给一些这个一些大型的政府机构啊,或者这样银行金融保险机构来做的话,他们一般来讲也都是用收费软件。
15:16
因为收费软件一个是稳定,再一个运行效率高,再一个他做的效果好,所以像这些公司一般来讲都是用这种软件,知道吧,但中小型企业一般不用这个,好,这是我的这个I这个插件,但这个叫这个插件,大家知道一下,你知道它是做这种办公文档啊,办公文档office编程也叫office编程办公文档操作办公文档的这么一个插件,知道吧,当然咱们这个地方咱们就不用了啊,咱们也不花钱,不用花钱,我买它的插件,咱们用什么,咱们用另一个比较流行的插件,哪一个就这个对免费的,这是POIPOI这插,这个也是非常流行的一个差一个插件,中小型企业大多数基本上都有它。
16:00
大家不花钱,基本上包括一些大公司,有的人也用它是吧,它是免费的,他免费并不是说它不好,其实他做的从效果上来讲,它不次于这个。其实他也很好,就是反正运行效率上可能没他高,但是从效果上来讲他也很好,怎说皮我还这么,他的电商这个就是他是收费的,他是这个这个公司做阿帕奇是吧,就阿帕奇的PY,这是啊,这是开源组织做的,所以这些是么,他是收费的,所以我们这种就我们就准备用这个了,用阿帕奇的POI,但你以后到工作的过程当中,基本上也差不多也都是用阿帕奇POI了,知道吧。啊,这样他做的也很好啊,这是我们说的,但是他是免费的,当然你说老师还有没有别的差,有别的差件还有很多的,但是市面上再用的话,别的就用的不多了,至于个别的公司在用别的插件,所以别的我们就不多说了,大家知道这两个插件就行了,那我们这个项目就是使用阿帕奇的这种PI了,好这是我们说的,这那下边呢,我们就准备给大家介绍一下阿帕奇的PI使用它如何生成Excel文件,并且把我们自己的数据,然后呢写到Excel文件里边去知道吧,好下边我们来看看它这种使用,知道他这使用,那我们再给大家讲这种他这种它件具体使用之前呢,我先给大家简单说一下,像这些使用这些插件来操作这种什么Excel文件也好,Word文件也好,PDF文件也好,操作这些办公文档呢,这个操作的整体的思路,基本的思路到底什么样?就他们设计和使用的一个思路到底什么,大家在这个思路的。
17:40
导向来研究他们的用法,知道吧,好,下边我们给大家写一个这种关于办公文档,你知道关于办公文档办公文档插件,关于办公文档插件的插件使用档基本思基本思想的基本思想来看,这是所有的办公档都是基于这个思想,你不管以后用什么插件,你用ipad也好,用阿帕奇的PO5I也好,你再用别的小众化的那些插件也好,所有的插件只要是操作办公文档的这些插件,基本思想都是一样,他们设计的时候都是这么设计的,让你用也是想让你这么用的。
18:21
他这个思想是什么?是这样,是这样,他说是这样,他说程序员要操作办公文档。那要用那一套图形化的API,那用那一套图形化API,但是一般的成员,应该说99%的程序员都是做外部开发的,但是他们没学过这套API,那怎么办呢?他说那你要又又要操作办公文档,那怎么办呢?这他说你别直接操作办公文档。他不让程序员直接操作办公文档,就为什么,因为要操作,要直接操作办公文档,你得用那一套API。但是我们不会API,他说你就别直接操作那些办公文档了,那说我不直接操作办公文档,我怎么生成这Excel文件呢?它是这样,它这些插件有他们来操作办公文档,他们直接操作办公,他们怎么怎么直接操作,他们就调那一套图形化的API,然后操作办公,能用他来操作,他来操作,他是他来操作,那我们操作什么呢?我们操作它就我们操作插件。
19:27
插件操作办公文档知道吧,那我们操作,我们操作这种插件怎么操作插件他这种知么?他这种插件就把那些什么办公文档里边的所有的元素都封装成一个一个的普通的Java类,然后呢,我们操作那些普通Java类,然后呢,那些Java类底层操作办公文档,所以这个就就达到我们让我们操作办公文档的这种目的了,这是他们的这个思想,知道吧。这是我们说的这样,所以大家他这个思想我给大家给大家简单写一下,知道吧,他这所有的办公党都这样,所有的办公党都这样罢,他们会把什么,把所有的这种差距在这把办公文档,他们把办公文档的所有元素,你要操作办公文档。
20:14
你肯定要操作那些元素,操作什么元素,以Excel文件为例,我就要操作他们的行,他们的列等等这些,他说你以后别直接操作这些行这些列干什么,你就他会,他们会把什么这些插件,把办公文档的所有元素都封装成,封装成什么,封装成普通的Java类。封装成普通的加工类,他们封装成普通加固类,每一个办公文档,每一个元素都对应一个加工类。那么程序员以后别直接操作元素了,干什么就直接操作这些类,这些类就对应那些什么元素,那你说老师程序员操作类会不会,那程序员肯定会操作类,程序员最擅长的是就是操作类,所以说那么将来什么程序员就或者叫开发人员,然后呢,不直接不直接操作啊这样吧,不直接操作办这个办公文档的元素通过什么,通过操作这些类,通过操作这些类来达到什么达到操作办公文档,操作办公文档的目的目的。
21:26
知道吗?程序员不直接操作类,不就不直接操作办公档,它通过什么,通过操作这些类,然后呢,达到操作办公共党目的,那如果操作类什么类在底层,他操作办公共党的元素,知道吧,这样就达到操作办公共党目的了。这是我们说的这儿,所以大家目前来讲是吧,基于这种思想,大家想一想,我们以后再操作办公文档的时候,我们什么不用再考虑到办公文档里边什么行,什么列,诶,什么页等等,不用再考虑这些东西了,你只要考虑什么,考虑这些插件给我们封装了哪些类。
22:05
你只需要把这些类研究明白了,你以后就直接操作类,你都不知道那些办公文档里边有什么东西,怎么往里边写数据,你不知道,你就你你就说你就没关系,你只需要操作这几个类就行。把这几个类研究明白了就可以了,知道吧。好,这是我们说的这个思想,所有的办公引导都会给你提供了一系列的类,这些类就对说所有的这些插件都给你提供一系列的这种类,普通的Java类,这些类就对应办公文档的各个元素。你要生成元素,你只需要生成这一个类,你要什么,你你你要生是吧,你要生成一个元素,你只需要生成这一个,它这个元素对应那个类的一个对象就行了,一定要用工具方法就可以了,就生成这么一个元素了,知道吧,你比如说大概我们举个例子啊,你比如说我们办公,你比如说我们Excel文件,假如说我是我要在Excel文件时,这我想生成一行。
23:03
你别直接创建一行,你干嘛,它这一行里边将来这一行将来对应一个工具类,这个对应一个类,那这个你要生成一行怎么办?你别直接生成一行。对,你直接溜这个类的一个对象,然后呢,这个类一个对象生成了呢,你调一个工具号啊,这个对象会自动给你生成一行,知道吧,假如说我要什么在一行里边生成一列,懂吗?你别直接生成列,为什么你要直接生成列,你得使用那条API。你不会,那你干嘛,你你一个那个列对应的一个类一个对象,然后呢,拿到这个对象之后,一调一公用方法,然后呢,它就自动的给你生成。一列知道吗?这是他这个思想。就这。所以大家对我们而言的话,只需要研究这几个类就行了,哪几个类哪代你想一想它有哪几个类啊。在ex操作Excel文件有哪几个类,然后我问你有哪几个类,那你说你问我,我怎么能知道,那你想一想啊,对,你想想Excel文件里边有几个元素,那它又有几个类,是不是这个意思?对,那你看,那你想想Excel文件里边有几个元素,都有哪些元素?对,是不是有行啊,Excel文件里边有一行一行,这有它一个元素,好了,那一行的话,那么将来你假如说要操作一行,你别直接操作行,你要操作行你就用API,你不会那干什么,他把这个行封装成一个类流封装成一个类了,你只需要操作这个类的对象,一定要用工具号码,就达到操作行的目的了。
24:41
哪一个类在阿帕奇的POI里边,它这个类叫,这个叫H,那么叫HSSF叫什么叫肉这个类?那你说叫I在ITS里边是不是也叫它,Itpa里边当然不叫它了,当然它也有一个相对应的肉,肉一个类,然对应一行,大家的思想基本上都是一样的,知道吧,好,这是我们说的这,那大家再想一想,再看Excel文件上,这是这是一个,这是一个元素了,对应这个类,那Excel文件上还有什么元素,对是不是列啊,列对吧,那列的话,你以后要想在Excel文件操作列,你也别直接操作列操作谁操作这个对象,HSSF叫S对象,这个对象就对应一列,你想生成一列,直接创建这么一个这么一个类的一个对象,一调一公号自动给你生成一类,就这意思,懂吧。
25:37
好,这时候我们说到这个Excel文件这两个元素了,大家再想一想,Excel文件里边还有哪些元素?对,还有页,就像我们说这个页知道吗?我们说Excel文件里边有行,行里边有列,然后呢,行是属于页的,页下边有横,所以有一,那这个什么,我们按照它的范围的大小给大家列出来啊,有页有一页一页啊啊那以后我们要是要在Excel文件操作页,你别直接操作一页操作谁操作这个HSSF叫she这个对象这个类,你想操作用么?一个页你就操作这么一个对象就了,一定要用工具方法,然后自动操作页啊好,这是我们说了啊这那下边咱们我们说还有哪些元素,Excel文件里边。
26:30
还有最大的一个元素叫什么,就这个文件本身知这个字,文件本身,文件本身它也封装内,他也看到一个元素了,也封装一个类,知道吧,这个类叫这个对应到这个类叫HSSF叫workbook work叫work,不叫读读播库或者叫文件,你知道吧,文本的意思知道吧?好,这是我们说的这个说你以后要生成一个Excel文件,或者要操作一个Excel文件,你别直接生成文件,或者直接操作文件干什么,生成这么一个对象,操作它的对象,一定要用公众号自动给你生成一个Excel文件,或者什么操作一个Excel文件,知道吧。
27:14
好,这是我们说的这四个类,大家看Excel文件里边最基本的元素就是这四个,所以那对于它这插件操作Excel文件最基本的类就这四个类,有这四个类完全可以生成或者操作Excel文件了,知道就有这四个类啊,这是最基本的,这是说的知道吧,还有大概,其实大概Excel文件还有一些别的一些元素,这是最基本的,就是能够保存数据,能够什么能够修改数据,知道吧,但是这些数据呢,为了好看,有的时候还有样式,你比如里边这些字体什么样式的,这边框什么样式的,我们以后什么可以随便,但你看包括这些的单元格,你可以设置,设置它这边框之类的对齐方式啊,然后边框边框多大的等等这些都可以设置。
28:03
那么这些也属于Excel文件里边的元素,这些元素我们把它叫样式懂,那我以后万一写一个Excel文件,我想修饰一下这种效果怎么办?设置样式就行了,设置样式怎么设置?别直接设置样式干什么操作这个类。操作这个类他什么,他把这些样式也都封装到一个类里边了,生成一个对象,一设置这个对象,然后呢,这种样式就给你出来了,知道吗?哪一个类还有这个叫HSSF,叫style,然后呢,Style这么一个类。它叫什么来修饰,然后呢,Excel文件里边各个列的样式,什么样式,在它里边定义一系列的属性,从各个角度上来对一个单元格进行修饰,有的修饰边框的,有的修饰颜色的,有的修饰这个字体的,有的修饰别的一些效果知它定义很多属性,从各个方面来对单元格进行修饰,那它到底怎么用,我们一会一写代码就行了,知道吧。好,这时我们跟他说的Excel文这个阿帕奇特POI来操作X尔文件的最基础的四个类。
29:13
四个类,有这四个类,大家完全就可以随意生成Excel文件,甚至Excel文件里边有数据的话,也可以通过这几个类,然后把里边数据取出来,知道吧,我们今天先给大家讲如何使用这五个类来生成Excel文件,知道吧。好,这是我们说大概他这个思想就这样,好下边我们就准备这样基于阿帕奇的PY来生成Excel文件了,知道吧,好这时候我们这样,那下边给大家,我们简单给大家演示一下如何升。
我来说两句