00:00
大家看酸位层想法下面写CTRL层了,在市场活动的CTRL里边加一个方法,这个方法叫批量导出市场活动,所以我们这个段加了一个方法,然后呢在市场活动这个ctrler找市场活动ctrller,然后呢在这里边加一个方号,这个这个方号。那这个方法我们说继续public的对吧,返回值返回什么类型的。返回什么类型的,对,我因为我们要返回Excel文件,要下载文件了,那我这个我自己往回返,我不借助CT方法往回返了,所以这个是VO的了。所以那这下边写出方法名,这个方法名我就建明之意了,导出叫X pop知道吗?那么批量导出叫所有的市场活动S知道吧,那以后还有一个选择导出,那个选择导出,那你可以什么叫什么叫select select,然后呢,那我这个就导出所有的,我就叫c select,这个导出所有的,然后呢,这个地方啊这样就行,然后呢,大家看它这个CTRL层的方法,在这边给大分为一个ul,那分为URL,来一个request的马行,然后呢,在这里边给它URL,这个URL你我们说不能随便写,要和它处理自源路径保持一致,它的自源路径谁要处理到。
01:24
对,是不是就那个什么市场活动那地方,对市场活动那个页面下吧,那就是沃克奔驰activity,那能写吧,来个沃克奔驰work,然后呢,这个地方来一个activity activity,然后呢,下边的方法名是吧,资源的名称给方法名保持一致,这do看吧啊。好,这样的话再看我们这个request map就给它分配好了,分配好之后再看这个返回Excel文件,不用加body,前台没有形成,没有参数,不用定义形态,那下边直接写我们参数,直接写我们这个方法就行了,那写方法干什么呢?那你看看我们这个流程设计很明很明白了,嗯,他接收到请求之后,没有参数,不用获取,不用封录,下边直接调设备的号,把所有的数据查出来就行了,对这些他你只要设计好啊,我们说代码都是水到渠成的,下边就是调用service号,Service power,然后呢,去查询所有的市场,冲那调三,那就调完这个地方来一个activity service。
02:34
然后呢,这个地方来,然后呢,调那个叫query叫query or activity s没这样,然后呢,这个地方得到一个list list里边是一个一个市场活动的视觉对象,然后呢,这个地方来一个视觉对象,这样的话,我就把所有的市场活动都炒完了。那所有的市场活动都查出来了,数据都查出来,下边怎么办?对,下边现在已经来到这来了,下边就是什么创建一个Excel文件,并且把我们这个市场活动信息都写到这里边去,知道吧,那就创建Excel文件吧,那创建Excel文件我们说我们不自己创建,用插件是吧?用插件创建,那用插件怎么创建,咱们昨天刚才这说了是吧,那我这个地方这样吧,我就把这句话拷过来。
03:27
然后呢,这个地方啊,其实就是根据查询结果生成详应信息,其实就这对,那我说那要用阿尔帕奇的POI那个插件生成Excel文件,生成Excel文件就那几步知吧,就那几步,第一步先创建workb对象吧,然后呢,它就对应一个文件,那就知道吧,那我这个地方来这样,那我这个地方来懂们再给大家写一下是吧,来创建一个Excel文件是吧,我我这个不写注释了,我就直接创建了,创建那个文件,那创建那个对象,这个对象是个什么,HSS对F叫什么对work不可就这个对象,然后呢,这样就行了,然后定一个变量解说到HSSF叫work,不然呢,这个地方来一个work不就这知道,哎有同学就说了,哎老师他这个名怎么这么抄,前面有这个东西你知道吧,他这边每一个类都有个HSSF,那这个写的很不。
04:27
很麻烦很烦人,知种是吧,那他是什么意思啊,其实这是几个英文单词的缩写,这几个英文单词和写这几个英文单词是这几个,这几个英文单词对,这叫HSSF,网上啥都有明白吗?你有啥不明白的,到网上一搜,啥都有,对,所以大家要要善于利用网络,你只要想不明白的网上全有知道看这网络,这是网络社会太太厉害了,知。然后。这玩意有那个。
05:03
这网网速不给力。哪几个英文单词看一看,就这几个看吧,这几个英文单词。这一个这样吧。好像都学过,应该是大家因为这英大词应该都学过,考四级的时候肯定都学过啊对这就是什么,这就Excel文件电子表格是这是外国人,这外国人起的,这是这是Excel文件呢,应该是叫学名是吧,这是是吧,这就这几个英文单词,但是他们拿外国人是吧,其实他们发展的比较这个起步比较早,他们这些这个软件开发是吧?啊所以他你看人家命名这一类,人家命名的非常好啊,只要你一看诶我就知道这是什么操作Excel文件呢。
06:09
那当然以后还有还有word文件什么之类的,这些他都是什么,从类名上面一定我就能看出来,哎,你这个类是干什么的,你知道吧,所以这些其实他这个思想是比较好啊,但虽然你写的时候麻烦一点,但是以后代码就比较好维护好,这是我们说这那我说它就对应一个吧,这一个对象就对应Excel文件,将来一调一工具化,它就生成知道吧。好这时候我们说这那我们说这个文件,那我说往里边写内容,要往里边写内容,那往里边写内容我们什么首先创建一页,那这一页来一个叫create sheet啊,然后呢,在这里边是么,给它给这一页起个名字,那以前我们叫学生列表,现在我要导出市场活动了,这个叫什么?对叫市场活动列表啊,这样然后呢,这个地方来定一个变量接入到HSSF,然后呢,就叫shift,好这个地方来一个shift,这样就行,好那有页了,下边是不是要创建行了,对创建行,假如说我先创建第一行。
07:09
做表头,那我就这么可以创建一个横,对这一个叫create柔懂吧,第一行这出来写几啊对,写零是,然后呢,这个地方来一个叫HSSF加一个写个肉,然后呢,这个地方来一个入,这样就行了,这是第一行是吧?好,那这第一行行有了,是不是要创建列了?对,在这一行里边创建列,以前我们创建的是三列,有关学生的学号,姓名和年龄,现在我要创建几列?实体类,对,那你看这个什么实体类,或者你这个表里边有几个字段,是不是要创建几列了,那我们这里边有几个呢看看。对几个一个两个三个四个。嗯,对对,下边有啊对有对11列是吧?那我就创建11个赛对象是吧?那就创建吧,在这个地方创建,然后呢,Create是吧,Create serve,首先第一列是零是吧,是零,然后呢,这个地方来一个HSSF,然后呢,Serve,然后呢,这个地方来个sa,这样就行了,这是然后呢,这个sa里边是不是就可以往这一列里边写内容啊写内容,那我第一列的内容来一个叫set serve value,往里边写什么?假如我们第一列是放ID的,那这个地方我就写个ID或者叫标识都可以行吗?下边还有市场活动的名字,还有市场活的开始日期,结束日期,所有者等等这些,那我就都创建这些列就行了,好,创建,总共创建11列,一个一个来吧,我们按顺序来吧,按照个顺序,这是什么?第一列已经有了,下边第二列是所有者,对,来一个所有者,这是第二列,这个是几啊?
08:55
对是一啊,所以我这是拷贝下来,直接过来了,然后呢,这个是所有者对所有者啊,然后呢,再来一个,再来一列是吧,这是第二列,这这第三列了是吧?第三列第三列这个是应该是市长活动的谁啊对名称,那这种来个名称啊,市场活动的名称,然后呢,第四列,第四列这个是个三,第四列应该是我们的对开始日期,开始日期开始日期。
09:29
知道吧,知道吧,第五列第五列这个是个四是第五列是结束日期啊结束日期结束日期啊好,然后呢,下边第六列第六列这是五,这个谁啊对成本成本下边这个是第七列第七列这是个六是吧?成本这个谁对描述是吧?描述然后呢,第八列第八列这是个七是吧?这是谁啊对创建时间是创建时间,然后呢,第九列第九列这是八,第九列是创建者是吧?创建者然后呢,第十列第十列这是个九,这是修改时间,修改时间然后呢,再一个第11列这是个十。
10:30
然后呢,这个是修改者是,但有点你导出这些太麻烦了,又几列代表不就行了吗?以后我到我做下一个功能还得导入,导入的时候,我就把下种导出的这个文件再反过来上传上去,所以我还得用这个文件,以我把这一列,这一列都导出来知好这样的话,大概我们说第一行我们都创就创建好了,这个是个头知这个是个表头,总共有11列,下边我要创建数据行了。
11:00
创建数据行,那到底创建几行呢?对创建数据行一个一个的来看,那创建数据行,那还是用这个she来创建,你看有一个市场活动就创建一行啊创建个roll,这个肉大,看我说第一行是不是零已经创建好了,从一开始了,那么说有一个市场活动又创建一对吧,放到第二行是吧?再有一个是行呢,是不是二了,放到第三一第三行里边,再一个那了三放到第四行里边,那到底有多少行呢?S77点对大咖,你看这个list里边是不是查出来有多少条市场活动,是不是就创建几盒穿眼镜,那它到底有多少市场活动呢?对,是不是要便利它,对便利这个list,便利list然后从里边一条一条的市场活动全取出来,每取一个市场活度创建一行,那么这一行里边有11列,这11列这个数据正好是不是从便利出来,这个市场活动里我取就行了,就这,所以下边我们就准备这了,便利这个地方来便利我们的例子,便利这个例子。
12:14
然后获取什么,每次便利出来都能够获取一个市场活动对象,然后每设计每获取一个市场活动的对象都创建什么,创建每一行创建创建这个什么SSF,然后呢,肉对象,肉对象知道吧,每便利出来一个市场活动,创建一个肉对象,然后这个肉对象里边U里边就可以创建11列,这列里边每个数据就从什么每次变成这个市场活动取。对吧,创建这对象,然后呢,生成所有的数据横数据行啊数据横就这样就行了啊好下边我就便利了,那便利话用否循环变利知道吧,在这的话定一个循环变量,这个循环变量大哥,这就是遍利这么遍利这个是吧?遍利这个离子,那遍利这个离子这个I从哪取啊是吧?从从哪取啊,要遍利离色从一取,离色里边第一个元素还能取出来吗?
13:20
因为我叫我一会要什么,我一会在这里边要要从这个list叫activity点叫什么get,我要get呢是吧。这个I应该从哪取啊对,从零开始取是吧,然后呢,I取到什么,什么时候再往上利索点是吧?Size对小于它,然后呢,I每取一个是不是A加加对,这样的话我就能取出来所有的市场活动了,然后定一个变量来接收它,每变出来一个取一个市场活动知道吗?当然我们说这一个什么这一个变量拿到循环外边定义效率更高,不用每次都创建一个这个这么一个引用啊,然后呢,这样的话我们就行了,知每次都取出来一个市场活动知道吗?取出来市场活动每一每一次取来每一条市场活动都在,都存到这个这么一个对象里边,然后在这里边是不是在下边就可以创建一行了,在在下边创建一行,每一条市场活动对应一行,每一个市场来创建一行,每便利出来一个,每次就每便利出来一个,便利出啊一个市场活动对象。
14:34
对象,然后呢,来生成啊,生成一行生成一行,那生成一行怎么生成,是不是通过页来创建行,对创建行叫肉,对这个肉创建这一行放到哪一行呢。I加对,是不是I加一啊,I加一,因为I是从零开始的,但是我们第零行是不是已经创建好了,作为表头这个地方来一个什么I加一,I加一,如果你这次变成是第一条是吧,如果是第一个市场活动,那这个地方什么第一个它是零,那这个地方就放到里边,这这这里边就是一了,这里边是一,它是不是放到第二行里边了,因为第一行是表头就知道了,这样的话就可以了,嗯,然后呢,这个地方来一个肉对象,这肉对象这样就行了。
15:27
好,这样的话,大概你就拿到一个肉,拿到roll对象之后,下边每一行是不是有什么有11列呀,下边使用这个肉创建11列就行了,那创建11列我就不一个一个创建了,把这11列拷过来,CTRLC拷贝过来,然后呢,通过这个row创建11列。当然里边值肯定是变化的了,那我们来首先来看看大纲,这是一个大纲,这是每变出来一个什么,这一行生成一行,那每一行都有11列这个东西写个注释知道吗?每一行每一行有是吧?创建11列,11列然后每一列的数据是吧?每一列的数据然后呢,从什么?从这个便利出这个实体类对象中来获取就行了。首先第一列获取,获取这个识别对象哪一个属性,对是不是ID啊对ID那种就直接get ID就行了。第二列获取什么?对获取所有者O所有者,因为这些我们都已经连接查询,查询所有者的名字知道吧?啊下边这一个是市场,第三列对市场活动的名字知道吧,然后第四列获取。
16:47
市场活动的开始日期点get start date,然后呢,第五列获取结束日期点get in the date in the date in the data知道吧?然后呢,第六列这个地方成为get post,第七列描述第七列i.get description是吧?然后呢,第八列创建时间点get correct time,然后呢,这个地方第九列创建者activity.get创建者create y第十列修改时间点get修改时间叫edit time,然后呢,第11列修改者点然后呢,Get挨Y。
17:40
这样的话来看,网络每变出来一条市场活络,每变出来一条市场活络,然后呢,我们都每变出来一个市场网都生成一行,每一行都有11列,11列的数据都从这个市场中去便利完,那么我们说全部生成这多行了。这是我们说的这个就是这好,但是这个地方还有点问题是吧,还有什么问题,大家万一是吧,这个查这个市场活动,万一这个市场活动这个表里边一条记录都没有呢。
18:14
一条记录都没有,一条记录都没有,大看你这个地方还需要便利吗?对,不需要了,就导出来个表头就行,是不是知道呢?所以说大概你便利的时候,一般来讲就是list变历的时候,最好不要贸然的变历干什么,判断一下这个list里边是不是有数据啊,啊,如果它为空,或者说什么它里边没有数据,我就压根就不用变绿了,那怎么办呢?这个地方可以变,可以判断一下这个代码,大看别别贸然的变利,把它剪接出来干什么,来判断这个list是否为空,判断list是否为空,或者判断list里边有没有元素,咋判断。有个标准的判断方式是吧,当它不等空,并且也那么即使是么,即使它不等于闹,而且它里边什么也有元素,怎么怎么表示有元素,对点S大于零,即使不为空,里边也有元素,这个时候是不是我再变低啊的变低,然后呢,把这个代码贴里边就行。
19:19
这时候我们说的障碍我们就可以了啊,大家以后变利list斯最好也不要贸然变力,判断一下它是不是等于钠,不等于钠,并且也大于零。这个时候我的便利。也如果贸然的变利的话,其实一个是大哈,有的时候万一他等于到你这个地方就是不控制人了啊,再一个万一他没有数据,你变利的话也没意义,知道吧,所以一般来讲,便历历之前先判断一下是不是等空,或者是是不是那么里边没有元素,就这个意思,好,这是我们说的,这样的话呢,我们这个就可以了啊嗯。
我来说两句