基于SSM的宜家灯具商城的设计与实现_第1页
基于SSM的宜家灯具商城的设计与实现_第2页
基于SSM的宜家灯具商城的设计与实现_第3页
基于SSM的宜家灯具商城的设计与实现_第4页
基于SSM的宜家灯具商城的设计与实现_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGEII基于SSM的宜家灯具商城的设计与实现摘要:众所周知,我国正在迈向全面小康的阶段,人民生活水平不断提高,线上用户剧增,越来越多的用户愿意使用网络商城,而宜家灯具种类众多,价格实惠,产品质量好。客户不在满足于普通的照明方式,需要更多富含艺术感的灯具装置在卧室等区域,宜家灯具商城的设计与实现势在必行。本次研究主要是对宜家灯具商城的设计与开发进行了一些论述,包括了本商城系统。设计与实现的过程,设计部分上主要对本灯具商城与数据库的设计进行了建模,采用了SpringMvc,Spring,Mybatis框架搭建;实现的部分主要包扩了商城后台管理与前台管理各个功能的实现。本系统实现的后台功能有:宜家用户管理,灯具一级分类管理,灯具二级分类管理,商品管理,灯具订单管理。前台实现的功能有,购物车功能,留言功能,查看灯具的功能。商城系统满足客户的浏览,购物,查看订单状态,商家管理员可以进行更多细致的操作,满足了产品从商户到客户的基本流程,操作过程简单,易懂。关键词:灯具,商城,SSM,JAVA

DesignAndImplementationofIKEALightingMallBasedonSSMAbstract:Asisknowntoall,Chinaismovingtowardsthestageofall-roundwell-off,people'slivingstandardisconstantlyimproving,onlineusersareincreasingrapidly,andmoreandmoreusersarewillingtouseonlineshoppingmall,andikealampsareofmanytypes,affordableprice,goodproductquality.ThecustomerisnolongersatisfiedOrdinarylighting,needmorerichinartisticsenseoflampsandlanternsinstallationinthebedroomandotherareas,thedesignandimplementationofikealampsandlanternsmallisimperative.Thisstudymainlydiscussesthedesignanddevelopmentofikealampstore,includingthestoresystem.Intheprocessofdesignandimplementation,thedesignpartmainlymodeledthedesignofthislampstoreanddatabase,andadoptedtheframeworkofSpringMvc,SpringandMybatis.Partofthemainpackagetoexpandthemallbackgroundmanagementandfrontmanagementoftherealizationofvariousfunctions.Thebackgroundfunctionsofthissystemare:ikeausermanagement,lampclassificationmanagement,lampclassificationmanagement,commoditymanagement,lampordermanagement.Thefunctionofthefrontdesk,shoppingcartfunction,messagefunction,viewlampfunction.Themallsystemcansatisfycustomers'browsing,shoppingandorderstatus,andthebusinessadministratorcancarryoutmoredetailedoperation,whichsatisfiesthebasicflowofproductsfrommerchantstocustomers.Theoperationprocessissimpleandeasytounderstand.Keywords:Lighting,Mall,SSM,Java

目录TOC\o"1-3"\u第1章绪论 11.1研究背景和意义 11.2国内外研究现状 21.3本系统研究的主要内容 3第2章相关技术介绍 42.1Spring框架 42.1.1Ioc与Aop 42.1.2SpringMVC 42.2Mybatis 4第3章系统需求分析 53.1可行性分析 53.2系统的功能需求分析 53.3UML系统建模 6第4章系统的设计 84.1系统架构设计 84.2系统的功能模块结构设计 84.2.1用户功能模块 84.3数据库模型设计 104.3.1数据库概念设计 104.3.2数据库表概述 11第5章系统的实现 155.1商城后台管理模块 155.1.1管理员登录模块 155.1.2后台管理用户模块 165.1.3后台管理商品分类 165.1.4后台管理商品信息 185.1.5后台管理订单模块 195.1.6后台管理发货功能 205.1.7后台留言管理模块 215.2商城前台功能模块 225.2.1商城首页的实现 225.2.2用户注册功能实现 235.2.3用户登录功能实现 245.2.4用户留言功能实现 255.2.5商品展示功能实现 265.2.6用户购物车功能 265.2.7用户支付功能实现 275.2.8用户确认收货功能 28第6章系统测试 296.1测试目的 296.2测试方法 296.3测试用例 296.3.1管理员模块测试 296.3.2前台用户模块测试 29第7章结束语 317.1全文总结 317.2展望 31参考文献 32致谢 33PAGEPAGE33第1章绪论1.1研究背景和意义从1949年到今日,计算机火速发展,发展的速度跟光速一样快,世界各地的人也越来越喜欢用计算机保存数据,录入数据等方面,随着90年电商的发展,我国第一批电商人才如马云到美国学习了电商技术,把网页编程技术带回了中国,把电商项目的起步设计思想也带回了中国,由此,电商项目在中国大火,越来越多的电商功项目,越来越丰富的电商类型,以多形式多样化的技术得以发展。随着马云带动中国电商项目的兴起,人们思想也越来越开放,不在拘泥于线下购物,03年起,阿里巴巴就偷偷的已经发起了调查,如果有一种方式让你在家挑衣服,过不了多久就有人给你送过来,这种方式你们喜欢吗类似这种的社会调研调查。结果人们都非常渴望向往这种模式,得下结论,这种电商模式被称为B2C模式。随着计算机在我国10年前几年的快速发展,越来越多的人愿意,开始接触计算机,慢慢地,悄悄地,电商行业在我们身边悄然发展起来了。到了08年,我们身边开始有了网上商店,那段时间在我们身边看来并不被大众接受,很多商家被冠以了骗子,给了钱不发货等情况,其实,很多商家并没有错,而是那段时间物流还没发展起来,那段时间仅仅只有邮寄还有没发展起来的顺丰快递,当物流发展起来以后,线下的传统商店生意越来越差,网上商城大火。在那个时间阶段,还有一小部分人们认为网上商城不安全,选的东西跟上传的图片有差异等等,但这些声音阻挡不了电子商城B2C的起兴,马云抓准了时机,看准了线下传统商店也可以入驻到淘宝,于是就形成了百花齐放的淘宝店铺,反正赚钱的是店家,方便的是购买者,于是又过了一个阶段,更多的人喜欢在网上看店铺找好尺寸跟图片,去线下找这种符合他们内心标准的产品,当时,媒体称这种时代为上看下买,人们也慢慢接受了这种模式。随着程序员技术的越来越好,第三方支付的兴起,没错,阿里巴巴弄了个支付宝,它的出现,告诉了世人,阿里就是专门为商家,为用户服务的,有了支付宝以后,马云团队还研究购买了超级计算机,把服务器部署到各个区域,研发了各种中间件,可以实现负载均衡的服务器,把老年代的技术直接替换成了新年代的服务技术,出现了低流量可以看所有商品,实现海量并发,海量购买,海量结账也不会出现安全故障的时代,我称之为网购时代,网购不再拘泥于青年人,中年人了,也吸引了很多会用计算机的小孩跟老人,促成全民购物时代。所以说,在全民购物时代中,宜家灯具商城的研究出现是很有意义的,一有前人的经验,保障了安全的起步。二是在大时代面前,遵守当今的规矩,是有帮助的,这并不是随波逐流,而是跟上了时代的步伐。1.2国内外研究现状因为大互联网年代的来临,B2C模式给阿里巴巴,京东等电商商城公司带来了巨大盈利,方便惬意的生活方式以及大众的选择也给人们带来新的选择,用好的平台来购买好的商品。其实,从90年代开始,海外就已经在研究新的销售模式了,他们发现计算机其实可以不仅仅用于单纯的记录数据,从我查阅的资料来看,最早的电商项目不是用于商用,而是用于简单的银行录入数据,图形界面及其简陋,录入数据还需要人工录入,效率低,不实在。但随着网页时代的来临,国外大神们推出了文本编辑语句,就是网页三剑客,在当时,引起了全球风靡,当当时技术的不全面,还是使用静态的网页,谈不上发展电商项目的地步,直到亚马逊的出现。经研究表明,亚马逊已经用了好几年的时间做市场调研,这个时间上保守用了8年,耗费了大量的时间,金钱,人力,物力,用脑图画出B2C模式的研究,提出了猜想,没错,就是电子商城的猜想。在计划的起步阶段,他们跟微软公司合作,聘请了50多个资深程序员,招募了各地名牌大学生进行第一个电商项目的着手研究,要知道,当时的编程都是用于系统上,几乎没有使用在网站上,而且也没有店铺自行加入,可想而知,能执行这种项目需要花费多少的资源,但他们挺住了。第一个电商平台,真正作用于店铺的平台出现了。从2015年到至今,我国的电商平台研究的比国外更透彻,因为我国经济快速发展,人民生活水平日益增长,最主要的是我国店铺商家多,不怕单纯一种商品被垄断,我国的电商店铺是面向全部民众的,从企业到农民都有他们各自不同的内部业务,相反,国外入铺电商平台门槛太高了,经资料显示,美国入铺一个电商平台,需要耗费大量钱财,要开域名,服务器,他们的发展已然偏向资本发展,是走不远的,相反我们国家的电商项目的入铺简单,域名可以申请,只需要提供身份证号码,相貌的照片,以及一系列的产品的描述,通过质量检测即可入户。不同电商商城还有着不同特殊业务,比如淘宝有它专属的支付宝,外带花呗等预支付支付手段,京东的京东快送,说起京东,京东虽然今年不愠不火,但它的老板是真的很有智慧,比如他把各个商品派送到各地仓库,分布式发送,消费者不拘束那点送货费用,只要你快,就给你钱的口号被京东消费者说出,这种竞争模式,是不是侧面说明我们电商的发展兴起,其次,越来越多自家的企业不在拘束于入驻阿里,京东等店铺,他们追求了自身的业务,做自己的主人,从入库到派送,更多的业务更细致,更明确,更快,更方便,更适合人们去使用。1.3本系统研究的主要内容本设计主要研究的是电商系统,为了搭上电商火热的班车,研究能在网站上购买灯具,基于SSM框架的整合与开发。Spring,Spring

MVC和MyBatis三个框架的整合,开发时更方便,代码高内聚低耦合。本系统研究的主要内容是从消费者以及生产者的关系来阐述的,如何让消费者更快拿到商品,如何帮助商家更快出售商品是本文的主要内容,主要是通过后台管理多商品,前台把商品给用户浏览,以MyBatis作为持久层,SpringMvc作为处理请求,返回请求的业务层处理,这就是本系统研究的主要内容。

第2章相关技术介绍2.1Spring框架Spring具有面向切面的编程的思想(Aop),以控制反转(Ioc)作为容器,是一个普遍认知的轻量级,非侵入式的框架,它集成包含了JDO等第三方API,强调了面向对象的设计,用接口开发就是Spring的初衷。2.1.1Ioc与AopIoc是一个容器,也可以当作是OOP(面向对象)思想编程的设计原则,它可以大大的降低了代码之间的耦合度,它常用的使用方式有两种,一种是依赖注入(DI)的方式,另外一种是依赖查找,本人在本文中使用的是依赖注入,我可以通过注解注入把我的Bean添加到Spring容器中,让Spring做管理。Aop是面向切面编程,它需要找到一个方法的或一个业务的切面,把它横切,在这个切面的业务执行前,执行后,添加相关的操作,这就是Aop,它大大的降低了代码的耦合度,是Spring的精髓。本人在宜家灯具商城的开发中,使用了Aop配置了日志,事务,异常处理。2.1.2SpringMVCSpringMVC是Spring的一个mvc组件,它既保留了传统的MVC开发模式,M(Model),V(View),C(Controller)模型,视图,控制器,用新增了我们常用的视图解析器等等减少代码量的工具,它把所有接受的请求放入到一个处理器链,让处理相关业务的处理器来处理相应的业务,返回响应给用户,SpringMVC在本文中常用的注解有@Controller,把它声明为控制器,从而给Spring做管理。2.2MybatisMybatis是一个在ibtis基础上晋升的一款优秀的持久层框架,也是作为SSM框架的持久层的工具。

第3章系统需求分析3.1可行性分析在任何一个系统的开发前,都需要客户与商户进行需求分析,首先需要对用户的使用配置,开发者的能力的技术可行性,经济可行性,是否出动法律的法律可行性。一、用户配置使用可行性用户在使用前台用户模块时,只需要有一个能渲染页面的配置就可以,配置低,实用性高。二、开发者的技术可行性开发者在校时已经解除了JAVAEE的相关基础,也有一定的JavaWeb开发经验,数据库建模的能力,与用户的需求分析对接无沟通困难,且系统的流程业务比较清晰,开发者也比较熟悉电子商城的业务逻辑,在技术可行性上基本上是没有任何问题的。三、经济开销方面的经济可行性 开发者使用的是免费的Eclipse开源开发工具,插入了支持Spring的插件以及相关业务包,Mysql的安装也是安装官网免费版本,不存在收费行为。在经济的可行性上也没有任何问题。四、是否违法侵权的法律可行性 开发者使用的SSM以及相关连接池的jar包都是从阿里云上面的开源社区下载的,只要不用于商用都不会违法,MySQL视图工具使用的是navicat12试用版(免费使用30天),PowerDeigner本人使用的是公司内部已购买的账号,前端框架使用的是传统的开源OA的EasyUi,只要不用于商用,就不会触犯法律。3.2系统的功能需求分析用户登录模块:后台使用者通过用户名或者邮箱作为账号,以及加上用户的密码匹配成功后即可登录成功。用户的商城前台模块:用户可以浏览商品,用户可以模糊查询商品,如果用户需要购买产品,需要先登录,否则会弹出登录页面,登录后,用户可以查看购物车以及下单的状态,也可以对产品进行留言。管理员后台模块:管理员可以查看所有用户的信息,以及产品的一级分类二级分类的管理,也可以对每个订单的状态进行调整。3.3UML系统建模1.用户功能用例图图3-1用户功能用例图图3-1是用户的功能用例图,本系统采用的是Session写的购物车,所以用户必须登录,激活登录状态,才可以进行购买,用户如果没有账号登录,可以点击注册按钮填写信息激活账号,激活以后可以进行登录,登录完成可以查看物品,搜索物品,根据产品的一级分类,二级分类找到相应的灯具,然后点击图片可以查看物品的详情,最后进行购买,在购物车可以找到购买的产品以及是否支付,支付后可查看订单有没有发货。2.后台商家管理员用例图图3-2后台管理员用例图图3-2是后台管理员的功能用例图,当管理员在后台登录页面登录后,可以查看用户的相关信息,商品一级分类信息的管理,商品二级分类信息的管理,可以查看是哪个用户对哪个商品发起的留言,后台管理员可以对这个留言进行管理,从而实现控制舆论的操作,也可以对商品进行管理。最后,是查看订单的状态,查看哪些订单是用户发起未完成的,用户发起未支付,用户支付为送货,用户收获未确认等状态。后台管理员是专属的商户管理员特有的账号密码,所以不能通过本系统随意添加,只能通过数据库进行语句操作添加账号密码,每个后台管理员都拥有对所有商品所有用户进行操作的最高权限,所以每一步操作都必须谨慎。

第4章系统的设计4.1系统架构设计系统的成员只有两个,一个是用户,一个是商家,用户具有查看物品,购买物品,用户注册,查看自己的订单。商家可以管理商品,查看用户信息,订单管理。项目的整体功能结构分解如图4-1所示:图4-1系统的功能模块结构图4.2系统的功能模块结构设计4.2.1用户功能模块用户模块可先分为四大模块,有用户注册,查看物品,购买物品,查看订单灯等功能,如图4-2所示:图4-2用户功能模块结构图用户注册功能:因为用户要使用到购买的功能,必须要道路,要把用户的账号激活,才能使用购买的功能,否则会弹出请登录页面,所以要有注册这个模块。查看物品功能:查看物品指的是用户登录前或者登录后,可以通过导航栏的一级分类,二级分类选择要用看的物品,也可以在导航栏处搜索物品,查找到物品的图片名字后,点击图片的详情即可查看到该物品的详情信息,点击购买。购买物品功能:用户找到想要的产品灯具时,可以点击购买,购买可选取数量,购买后在购物车可以看到。查看订单功能:当用户下单后,可实时查看用户的订单处于什么状态,比如支付后等待商家送货状态等等。4.2.2商城管理员功能模块管理员模块克县分为用户信息管理模块,商品信息分类模块,订单管理模块,如图4-3所示:图4-3商城管理员功能模块结构图用户信息管理功能模块:管理员登录进入后台管理页面后,点击左方的Z-tree数型节点中的用户管理,可以对用户进行相关的curd操作,也可以把有不良言论的用户进行删除。商品信息分类管理:商品管理员可以对灯具的一级分类,灯具二级分类进行管理,可增加,可删除,可修改,但二级分类是建立在已有的一级分类以上才能操作,也可以对商品进行添加,去除,修改,灯具商品是建立于二级分类上边的产物,所以必须要一级一级储备下来。订单管理功能模块:商家在这个函数模块上可以查看订单的各个状态,并且可以修改订单的状态。4.3数据库模型设计宜家灯具商城的数据库模型如图4-4所示:图4-4宜家商城数据库模型图4.3.1数据库概念设计(1)用户、购物车、商品之间的关系图如图4-5所示:图4-5用户、购物车、商品E-R图订单,用户关系图如图4-6所示:图4-6订单、用户E-R图4.3.2数据库表概述根据数据库建模,设计出表单的字段,以及他们的实体,下面是各个表的详细信息,由PowerDeisnger导出:所有表概况如表4-1所示:表4-1数据库建模图概念名称物理名称billitembillitemcategorycategorycategorysecondcategorysecondorderitemorderitemordersordersproductproductshopcartitemshopcartitemuseruser管理员表(id,账号,密码)如表4-2所示:表4-2管理员表代码注释数据类型主键描述auid管理员IDintTRUE存储管理员自身的idusername账号varchar(255)FALSE存储账号名password密码varchar(255)FALSE存储密码值订单项(订单id,数量,价钱,商品id)如表4-3所示:表4-3订单项表代码注释数据类型主键描述billid订单idintTRUE订单自身idcount数量intFALSE存储数量ptotal价钱doubleFALSE存储价钱pid商品idintFALSE存储商品id灯具一级分类表(一级分类id,一级分类名)如表4-4所示:表4-4灯具一级分类表代码注释数据类型主键描述cid一级分类idintTRUE存储idcname分类名称varchar(255)FALSE存储分类名灯具二级分类表(二级分类id,二级分类名,一级分类id)如表4-5所示:表4-5灯具二级分类表代码注释数据类型主键描述csid二级分类idintTRUE存储自身idcsname分类名称varchar(255)FALSE存储分类名cid一级分类idintFALSE存储一级分类id订单状态(订单id,商品的购买总数,总价钱,商品id,订单的id)如表4-6所示:表4-6订单状态表代码注释数据类型主键描述oiid订单idintTRUE存储订单idcount总数intFALSE存储总数subtotal总价钱doubleFALSE存储总价钱pid商品idintFALSE存储商品idoid订单项idintFALSE存储订单项id商品表(商品id,商品名称,市场价,宜家价,图片,商品的描述信息,上架的时间日期,宜家灯具的二级分类)如表4-7所示:表4-7商品表代码名称数据类型主键描述pid商品idintTRUE存储商品idpname名称varchar(255)FALSE存储名称market_price市场价doubleFALSE存储市场价shop_price宜家价doubleFALSE存储宜家价image图片地址varchar(255)FALSE存储图片地址pdesc产品描述varchar(5000)FALSE存储产品描述pdate上架日期timestampFALSE存储上架日期csid二级分类idintFALSE存储二级分类id购物车表(购物车id,用户id,商品id,商品数目,单价,总价钱,商品名称)如下表4-8所示:表4-8购物车表代码名称数据类型主键描述cartitemidIdintTRUE存储Iduid用户idintFALSE存储用户idpid产品idintFALSE存储产品idpcount商品数目intFALSE存储商品数目price单价doubleFALSE存储单价image图片varchar(255)FALSE存储图片ptotal总价doubleFALSE存储总价pname产品名varchar(255)FALSE存储产品名用户表(用户id,用户名,用户密码,姓名,游戏,手机号,地址,状态)如下表4-9所示:表4-9用户表代码名称数据类型主键描述uid用户idintTRUE存储用户idusername账号varchar(255)FALSE存储账号password密码varchar(255)FALSE存储密码name用户真名varchar(255)FALSE存储用户真名email邮箱varchar(255)FALSE存储邮箱phone电话号码varchar(255)FALSE存储电话号码addr地址varchar(255)FALSE存储地址

第5章系统的实现本系统主要分为,前台的商城用户模块和后台管理模块实现:5.1商城后台管理模块因为前台商城所展示的灯具,分类,以及用户所看到的订单追踪都是由后台管理员进行管理。5.1.1管理员登录模块宜家灯具商城管理人员需要从管理员后台模块登录,需要登录管理员账号,登录的管理员密码,如果账号密码校验成功,则进入管理员页面,反之登录失败。登录成功后,进入宜家灯具管理员后台页面,由Iframe标签嵌入top的网页。管理员登录页面如图5-1所示,宜家管理员匹配成功后进入的宜家管理后台如图5-2所示。图5-1宜家灯具管理员登录页面图5-2宜家灯具管理员页面管理员验证账号密码的核心代码如下: AdminuseradminuserLogin=userService.adminUser_login(username,password); if(adminuserLogin==null){ model.addAttribute("message","匹配失败"); return"admin/index"; } request.getSession().setAttribute("adminuserLogin",adminuserLogin); return"admin/home";5.1.2后台管理用户模块后台管理用户模块指的是管理员点击左边导航栏可以进行对用户信息的预览,查看用户的相关信息,如电话号码,地址,用户可以自行修改信息,管理员可以删除会员的信息,效果图如图5-3所示:图5-3用户管理模块效果图用户管理模块实现核心代码如下:@RequestMapping("/admin/admin_findAll")//映射路径publicList<User>SelectAllUser()throwsException{ Useruser=newUser(); returnuserMapper.selectByExample(user);//查询所有用户放入集合 }5.1.3后台管理商品分类因为灯具过多,种类频繁,为了避免用户查找灯具难度过高,所以设置了两级分类,第一级分类为大纲,第二级分类为次纲,第二级分类与第一季分类过挂钩。宜家灯具一级分类模块:宜家灯具商城管理员点击左侧的一级分类管理,管理员可以在该页面中可以添加分类,编辑分类,查看分类,删除分类,因为二级分类的外键是一级分类的id,所以,绑定了二级分类的一级分类不能删除。一级分类模块的图片如图5-4所示:图5-4一级分类List图一级分类核心代码图如下:@RequestMapping("/admin/admin_SelectAllCategory")//映射路径publicList<Category>SelectAllCategory(){//查看一级分类 Categorycategory=newCategory(); List<Category>list=categoryMapper.selectByExample(category); if(list!=null&&list.size()>0){//提高代码健壮性 returnlist; } returnnull; }宜家灯具二级分类模块:标题5.1.3时提到过二级分类与一级分类做挂钩,管理员点击二级分类模块时,管理员可以在该页面中可以添加分类,编辑分类,查看分类,修改二级分类所属于的一级分类。二级分类模块的图片如图5-5所示:图5-5二级分类的效果图二级分类模块的核心代码如下:List<Categorysecond>list=categorysecondMapper.selectAll(categorysecond);//查询pageBean.setList(list);//分页5.1.4后台管理商品信息后台管理商品信息模块是指管理员可以在该模块进行对产品的编辑,可以查看灯具,新增灯具,修改灯具,删除灯具等功能。实现重点:在该模块中,读写图片是重点,灯具一般字段都能普通的方法录入,但产品的照片回显时,需要用到io流,要实现图片的上传功能,需要把jsp上表单的传输方式改为post,然后添加enctype="multipart/form-data"这个属性,意味着它有的属性是以二进制进行传输。写io的时候,图片保存路径为服务器下的image文件夹上,但存入数据库的是相对路径,当回显页面时,用jsp中${pageContext.request.contextPath}中的语句拼接上从后台传输过去的请求域中的字段,就可以拼接成完整的路径。在使用img标签中的href属性,图片就可以回显了,另外灯具添加需要跟二级分类做挂钩,必须连接其二级表,连接字段为csid。灯具管理功能实现效果图如图5-6:图5-6灯具管理实现效果图实现灯具管理模块的核心代码分两段:(1)整体灯具管理模块核心:PageBean<Product>productList=productService.SelectAllProduct(page); model.addAttribute("productList",ProductList); return"admin/product/list";(2)图片io流核心代码(新增图片,修改图片):if(file!=null){//传统读写 Stringpath=request.getServletContext().getRealPath( "/products"); StringuploadFileName=file.getOriginalFilename(); StringfileName=UUIDUtiils.getUUID()+uploadFileName; FilediskFile=newFile(path+"//"+fileName); file.transferTo(diskFile); product.setImage("products/"+fileName); }5.1.5后台管理订单模块后台管理订单模块是指商城管理员在点击管理页面的所有订单中可以看到全部订单,可以获取所有订单的信息,如收货人,发送的物件,收货地址等等,也可以看到哪些用户未结账,哪些用户未收货功能实现描述:订单会有4种状态,其中后台管理员能看到4中状态,前台使用者能看到2中状态,在后台管理平台中,从生成的订单存入数据库后,回显的页面分为4个,把订单实体放入到Session中,根据不同订单属性不同进行回显,后台管理平台中,在list中根据下拉框select选择下个状态的值,把这个值传到SetState方法中,为了让业务更精准,规定了管理员只能进行本次操作的下次状态,用这个在前端页面用了Cgtib中<c:if>做了判断,其中,订单表跟商品表跟用户表呈多对多的关系,订单表跟商品表的中间表为订单详表,订单表跟用户表的中间表为订单用户表,当用户点击结账时,订单会把该用户放至在Session中的购物车对象,把购物车对象放进Map<Order>中,在foreach算出该用户的总账户total,从而生成一个订单对象。宜家灯具订单管理模块实现效果图如图5-7所示:图5-7订单模块效果图实现核心代码如下:PageBean<Orders>ordersList=orderService.selectAllOrders(page); model.addAttribute("ordersList",ordersList); return"admin/order/list";5.1.6后台管理发货功能当管理员点击订单中消费品未发货页面时,管理员根据收到用户的付款信息时,管理员只需要点下发货,就可以根据用户设定的收货人,收货电话号码,收货地点进行发货。实现发货效果图如5-8所示:图5-8发货功能效果图核心代码实现如下:orderService.updateOrderStatus(oid,3);//更新状态为3 return"redirect:myOrder.action?page=1";5.1.7后台留言管理模块留言管理模块是管理员可以查看所有用户发送的留言,根据留言掌控舆论,为了防止恶意诽谤攻击宜家商城,用户可以查看留言,也可以删除留言。留言管理页面效果图如图5-9所示:图5-9留言管理效果图留言管理系统实现核心代码如下:PageBean<Message>messageList=messageService.SelectAllMessage(message);model.addAttribute("MessageList",messageList);return"messageList";5.2商城前台功能模块5.2.1商城首页的实现当用户进入宜家商城时,会自动跳转到首页,在首页,可以看到宜家商城的主页概况,比如用户可以看到灯具的一级分类,灯具的二级分类,一部分灯具,用户可以在搜索栏搜索想要的灯具,但是用户需要购买时要进行登录操作才可以,登录在右上角,如果没有账号可以选择注册按钮,注册好以后就可以进行登录了。主页效果图如图5-10所示:图5-10宜家商城首页效果图实现代码核心部分分三块:导航栏一级分类显示在主页核心代码:ArrayList<Category>categoryList=categoryService.getCategoryList(); request.getSession().getServletContext().setAttribute("categoryList",categoryList);左侧二级分类显示在主页核心代码:request.getSession().getServletContext().setAttribute("secondCategory",(ArrayList<SecondCategory>)secondCategoryService.getSecondCategory());商品展示在主页核心代码:ArrayList<Product>products=productService.showProduct(product); model.addAttribute("products",products);5.2.2用户注册功能实现当宜家用户点击用户注册的按钮以后,填入相应信息,当输入用户名时,通过异步校验,当前用户名如果已经被注册,会被提示当前的用户名无法注册,当所有校验成功以后,则把数据录入到数据库中,用户可以在前台进行登录。如图5-11所示:图5-11用户注册实现图用户注册的核心代码如下: @RequestMapping("/userRegist")//用户注册时发送的请求 publicStringuserRegist(Modelmodel,HttpServletRequestrequest, @ValidatedUseruser,BindingResultbindingResult, @RequestParamStringcheckImg)throwsException{ if(bindingResult.hasErrors()){//注入的参数全部一起校验,只要有一个错//误就会getError List<ObjectError>errors=bindingResult.getAllErrors(); List<String>list=newArrayList<>(); for(ObjectErrorobjectError:errors){ list.add(str); } model.addAttribute("errors",list); return"regist"; }

5.2.3用户登录功能实现当用户需要使用到留言功能,购物功能灯功能时,需要进行登录操作,点击登录按钮,进入登录页面,输入相应的账号密码就可以了。设计思路:当用户跳转到登录页面时,输入用户名时,当鼠标移开文本框,会触发blur()事件,此时,有一个交互事件进行了异步校验,ajax发送的请求到后台会访问数据库有没有这个用户名,如果没有则提示用户名不存在,反之提示可以成功,后续进行账号密码校验以及验证码校验,验证码是一个独立的模块,直接调用方法就可以了,当所有操作校验成功以后,把宜家用户用户名以及用户id存放在Session中。登录实现图片,登录成功后的图片如图5-12,图5-13以及代码如下:图5-12用户登录页面图5-13用户登录成功后用户登录页面实现代码如下:if(!sessionCode.equalsIgnoreCase(checkImg)){ request.getSession().setAttribute("message","请仔细看验证码"); return"redirect:login.action"; } Useruser=userService.userLogin(user.getUsername(), user.getPassword()); if(user==null){ request.getSession().setAttribute("message","密码错误请重新输入"); return"redirect:login.action"; }5.2.4用户留言功能实现当用户登录以后,点击查看留言,可以看到所有用户发送给商城的留言,看看用户对商城是喜爱还是讨厌,用户也可以把自己的观点放在商城上,只要不要太过分,管理员一般都不会去删除,如果用户太过分,可能面临会员账号被移除。留言功能实现效果图如图5-14所示:图5-14商城前台留言功能实现图商城前台留言功能核心代码如下:ms.setMessage(messageinfo); ms.setUserid(loginUser.getUserid()); messageService.addMessage(ms); request.getSession().setAttribute("ms",ms); return"redirect:/messageshow.action?";5.2.5商品展示功能实现当用户登录以后,点击某个商品,会弹到该商品的详情页面,会获得商品是不是火热装填,商品具体描述信息,商品的价钱都会获取,还可以点击按钮把商品放入购物车中,产品信息详情如图5-15所示:图5-15产品信息详情实现图信息详情实现核心代码如下:Productproduct=prodcutService.selectProductByPid(pid); model.addAttribute("product",product);5.2.6用户购物车功能购物车指的是用户登录后,点击商品详情,把想要的商品放入一个临时储物箱,这个储物箱可以计算它的总价,生成的订单总价也是依据购物车的总价来计算。设计思路:用户商城购物车是前台用户模块最重要也是实现的难点,因为它涉及到连接表的数目很多,一共用了五个表,购物车实体需要插入用户id,商品id,二级分类id,因为用户必须登录才能使用改功能,所以用户id可以直接从Seession中获取,用户未购买任何东西,本人设置了一个Map<Shopcar>,存放了用户id,其他属性设置为NULL。当用户点击商品购买后,会把商品id存入到购物车中,选择数量,此时前台页面用了Ajax异步计算,此时会请求一个CountMoney的Mapping,它会通过这个pid查询到宜家价格,再计算刚刚所得的Count,再把所得结果通过InnerHtml()方法插回到文本框中,最后购物车信息添加到Map,存入到Session域,用户结账后,生成订单。实现的图片效果如图5-16:

图5-16购物车存储效果图购物车存储计算实现核心代码如下:Cartcart=getCart(request); cart.addCart(cartItem); return"cart";5.2.7用户支付功能实现当用户选购完商品后,会生成订单,当订单结算完价钱以后,用户需要填写收货人,收货地址,电话号码或者微信号,然后点击付款结账,否则商家不会发货,支付功能效果图如5-17所示:图5-17用户支付功能实现图实现的核心代码如下:orderService.payMoney(order); return"redirect:UserOrder.action";5.2.8用户确认收货功能当用户登陆后,点击订单,发现订单卖家已经发货,用户自身也收到了灯具,此时诚实友好的用户需要确认收货,否则会被卖家追究刑事责任,点击以后,管理员收到通知,订单业务链完成。查看订单功能以及确认收获功能如图5-18以及5-19:图5-18查看订单实现图图5-19确认收货订单完成效果图实现确认收货核心代码如下:orderService.updateOrderStatus(oid,3); return"redirect:UserOrder.action";

第6章系统测试6.1测试目的因为写出来的程序难免有bug,测试的目的在于检测系统中的bug,测试是为了产品能安全在线上运行,测试是为了更好的生产,良好的测试结果注定有良好的线上产品,高压测试甚至还可以测试商城的抗压能力,处理并发的能力。测试不仅仅只是一个过程,它更是一个开发检验成果的重大体现。6.2测试方法分前台宜家用户模块测试以及后台商城管理人员模块测试,采用黑盒测试。6.3测试用例6.3.1管理员模块测试根据管理员模块需求分析进行测试,测试用例如表6-1所示:表6-1管理员模块测试用例序号测试功能输入输出结果1查看用户信息选择查看用户信息输出用户信息通过2一级分类管理对一级分类进行增删改查新增成功,编辑成功。删除成功通过3二级分类管理对二级分类进行增删改查新增成功,编辑成功。删除成功通过4商品管理对商品进行增删改查新增成功,编辑成功。删除成功通过5订单管理对每个订单状态进行查询订单显示状态通过6.3.2前台用户模块测试根据前台用户需求分析进行测试,测试用例如表6-2所示:表6-2前台用户测试用例序号测试功能输入输出结果1用户注册账号:userBuffer1密码:edit123输出注册成功通过2查看一级分类在导航栏查找一级分类一级分类渲染在导航栏上通过3查找二级分类点击一级分类后查看二级分类二级分类通过4查看商品进入主页可以看到商品通过5查看商品详情点进商品详情商品详情成功显示通过6生成购物车点击商品加入购物车生成购物车成功通过7结账把购物车的订单项结账结账成功通过8查看订单查看用户订单查看成功过通过9输入留言输入留言信息:灯具好贵成功输入,并显示通过10确认收货点击确认收货订单完成通过11支付点击付款进入发货状态通过12商城主页进入商城主页商城信息展示成功通过

第7章结束语7.1全文总结基于SSM的宜家灯具商城的设计与实现,是我在体验淘宝商城的感想,以这种设计模式进行开发,据网上查阅,以往大部分商城没有采用动态页面,导致页面数量过高,加载量剧增,流量耗费太大了,我在实习的过程中,有幸在开发岗上担任了数据库建模以及商品增删改查的模块,学习到了原来可以把数据库回显到页面上面,以往只是单纯回显一个表单,其实这个也是回显一个表单,只不过这个表单做成了卡片,即商品的详细信息。疫情期间,趁着身体里的一腔热血,从数据库建模,到找ui模板,花了不少时间,因为在公司开发过程中,自己往往是按照架构师搭建的框架进行代码填充,我只需要扭螺丝就好,但当自己架构时,问题就来了,前端页面搭建问了需要前端工程师,让他们给予经验,后端方面,以前事务啊,日志都不需要自己配置,现在什么都要自己从头配置,压力挺大,花费的时间多,自己也慢慢练手这种搭建,享受这种搭建的过程。在本次开发中,我深深感受到Mybatis的方便,以及把对象教给Spring做管理,这真的太方便了,真的是体验到了用注解开发的乐趣,因为朝着架构师的方向走去,还需要更多的开发经验,也不满足此阶段的实力,还需要多看SPring的源码。由于本次开发人数过少,经验偏低,所以跟实际商城项目比较还是有很多改进的目标。7.2展望本次基于SSM宜家灯具商城的开发仅仅只能满足前台跟后台交互的一些最基本的需求,由于社会调研不足,以及个人水平有限跟开发时间不够长跟正在的商城功能上有很多偏差,还有待提高自身水平以及对项目的实现。系统开发还应考虑高并发,数据传输速度等问题。支付接口,系统没有实现真正的线上支付,线上支付不仅仅只是贴个二维码那么low,他需要申请调用第三方接口如微信,支付宝接口,由于本人还不具备申请第三方接口的调用资格,所以在线支付目前没有实现。需求分析能力还应更广泛调查。参考文献朱谦,罗新.社区电子商务网上购物模式[J].现代经济信息.2008。李贤华,基于JSP技术的大型网上购物系统的设计与实现[J].计算机与现代化.2008。ChangjieTANG,RynsonW.H.QingLI,HuabeiYIN,TongLIandDannyKilis,PersonalizedCoursewareConstructionBasedonWebDataMining,,ProceedingsofTheFirstInternationalConferenceOnWebInformationSystemZoyaAli.DesigningObjectOrientedSoftwareApplicationswithintheContextofSoftwareFrameworks[D].OhioStateUniversity,2011.RachitMohanGarg,YaminiSood,BalajiKottana,PallaviTotlani.AFrameworkBasedApproachfortheDevelopmentofWebBasedApplicationsWaknaghat[J].JaypeeUniversityofInformationTechnology,2011.岑红旗,浅析网上购物在中国的现状[J].时代金融.2007。江志刚.基于SSM框架的网上题目录入答题系统设计[J].无线互联科技,2017.Dubois,Paul.Mysql.MySQL.2005.石志国,JSP网络开发详解[M].北京:电子工业出版社,2007。LewisBW.rredis:"Redis"Key/ValueDatabaseClient[J].2015.袁绪峰.基于Spring框架的AOP编程[J].计算机与现代化,2006(1):118-120.孙永丽,刘成新.XML技术及其应用[J].中国电化教育(3):71-73.Ma,Kin-Keung,Foster,JeffreyS.Inferringaliasingandencapsulationpropertiesforjava[J].AcmSigplanNotices,42(10):423.FlanaganBD.JavaScript:TheDefinitiveGuide[M].2011.

致谢光阴似箭日月如梭,一下子就到了要跟校园说拜拜的时候,在此非常感谢自己的父母,老师,以及同学们的帮助。特别感谢我的指导老师刘老师,她一直对我不抛弃不放弃,一直在提醒我的论文进度,一直在帮我找出论文哪里不足,特别是格式上,排版上,特别特别感谢刘老师。

ExcelXP的八则快速输入技巧如果我们在用ExcelXP处理庞大的数据信息时,不注意讲究技巧和方法的话,很可能会花费很大的精力。因此如何巧用ExcelXP,来快速输入信息就成为各个ExcelXP用户非常关心的话题,笔者向大家介绍几则这方面的小技巧。1、快速输入大量含小数点的数字如果我们需要在ExcelXP工作表中输入大量的带有小数位的数字时,按照普通的输入方法,我们可能按照数字原样大小直接输入,例如现在要在单元格中输入0.05这个数字时,我们会把“0.05”原样输入到表格中。不过如果需要输入若干个带有小数点的数字时,我们再按照上面的方法输入的话,每次输入数字时都需要重复输入小数点,这样工作量会变大,输入效率会降低。其实,我们可以使用ExcelXP中的小数点自动定位功能,让所有数字的小数点自动定位,从而快速提高输入速度。在使用小数点自动定位功能时,我们可以先在ExcelXP的编辑界面中,用鼠标依次单击“工具”/“选项”/“编辑”标签,在弹出的对话框中选中“自动设置小数点”复选框,然后在“位数”微调编辑框中键入需要显示在小数点右面的位数就可以了。以后我们再输入带有小数点的数字时,直接输入数字,而小数点将在回车键后自动进行定位。例如,我们要在某单元格中键入0.06的话,可以在上面的设置中,让“位数”选项为2,然后直接在指定单元格中输入6,回车以后,该单元格的数字自动变为“0.06”,怎么样简单吧?2、快速录入文本文件中的内容现在您手边假如有一些以纯文本格式储存的文件,如果此时您需要将这些数据制作成ExcelXP的工作表,那该怎么办呢?重新输入一遍,大概只有头脑有毛病的人才会这样做;将菜单上的数据一个个复制/粘贴到工作表中,也需花很多时间。没关系!您只要在ExcelXP中巧妙使用其中的文本文件导入功能,就可以大大减轻需要重新输入或者需要不断复制、粘贴的巨大工作量了。使用该功能时,您只要在ExcelXP编辑区中,依次用鼠标单击菜单栏中的“数据/获取外部数据/导入文本文件”命令,然后在导入文本会话窗口选择要导入的文本文件,再按下“导入”钮以后,程序会弹出一个文本导入向导对话框,您只要按照向导的提示进行操作,就可以把以文本格式的数据转换成工作表的格式了。3、快速输入大量相同数据如果你希望在不同的单元格中输入大量相同的数据信息,那么你不必逐个单元格一个一个地输入,那样需要花费好长时间,而且还比较容易出错。你可以通过下面的操作方法在多个相邻或不相邻的单元格中快速填充同一个数据,具体方法为:首先同时选中需要填充数据的单元格。若某些单元格不相邻,可在按住Ctrl键的同时,点击鼠标左键,逐个选中;其次输入要填充的某个数据。按住Ctrl键的同时,按回车键,则刚才选中的所有单元格同时填入该数据。4、快速进行中英文输入法切换一张工作表常常会既包含有数字信息,又包含有文字信息,要录入这样一种工作表就需要我们不断地在中英文之间反复切换输入法,非常麻烦,为了方便操作,我们可以用以下方法实现自动切换:首先用鼠标选中需要输入中文的单元格区域,然后在输入法菜单中选择一个合适的中文输入法;接着打开“有效数据”对话框,选中“IME模式”标签,在“模式”框中选择打开,单击“确定”按钮;然后再选中输入数字的单元格区域,在“有效数据”对话框中,单击“IME模式”选项卡,在“模式”框中选择关闭(英文模式);最后单击“确定”按钮,这样用鼠标分别在刚才设定的两列中选中单元格,五笔和英文输入方式就可以相互切换了。5、快速删除工作表中空行删除ExcelXP工作表中的空行,一般的方法是需要将空行都找出来,然后逐行删除,但这样做操作量非常大,很不方便。那么如何才能减轻删除工作表中空行的工作量呢?您可以使用下面的操作方法来进行删除:首先打开要删除空行的工作表,在打开的工作表中用鼠标单击菜单栏中的“插入”菜单项,并从下拉菜单中选择“列”,从而插入一新的列X,在X列中顺序填入整数;然后根据其他任何一列将表中的行排序,使所有空行都集中到表的底部。删去所有空行中X列的数据,以X列重新排序,然后删去X列。按照这样的删除方法,无论工作表中包含多少空行,您就可以很快地删除了。6、快速对不同单元格中字号进行调整在使用ExcelXP编辑文件时,常常需要将某一列的宽度固定,但由于该列各单元格中的字符数目不等,致使有的单元格中的内容不能完全显示在屏幕上,为了让这些单元格中的数据都显示在屏幕上,就不得不对这些单元格重新定义较小的字号。如果依次对这些单元格中的字号调整的话,工作量将会变得很大。其实,您可以采用下面的方法来减轻字号调整的工作量:首先新建或打开一个工作簿,并选中需要ExcelXP根据单元格的宽度调整字号的单元格区域;其次单击用鼠标依次单击菜单栏中的“格式”/“单元格”/“对齐”标签,在“文本控制”下选中“缩小字体填充”复选框,并单击“确定”按钮;此后,当你在这些单元格中输入数据时,如果输入的数据长度超过了单元格的宽度,ExcelXP能够自动缩小字符的大小把数据调整到与列宽一致,以使数据全部显示在单元格中。如果你对这些单元格的列宽进行了更改,则字符可自动增大或缩小字号,以适应新的单元格列宽,但是对这些单元格原设置的字体字号大小则保持不变。7、快速输入多个重复数据在使用ExcelXP工作表的过程中,我们经常要输入大量重复的数据,如果依次输入,无疑工作量是巨大的。现在我们可以借助ExcelXP的“宏”功能,来记录首次输入需要重复输入的数据的命令和过程,然后将这些命令和过程赋值到一个组合键或工具栏的按钮上,当按下组合键时,计算机就会重复所记录的操作。使用宏功能时,我们可以按照以下步骤进行操作:首先打开工作表,在工作表中选中要进行操作的单元格;接着再用鼠标单击菜单栏中的“工具”菜单项,并从弹出的下拉菜单中选择“宏”子菜单项,并从随后弹出的下级菜单中选择“录制新宏”命令;设定好宏后,我们就可以对指定的单元格,进行各种操作,程序将自动对所进行的各方面操作记录复制。8、快速处理多个工作表有时我们需要在ExcelXP中打开多个工作表来进行编辑,但无论打开多少工作表,在某一时刻我们只能对一个工作表进行编辑,编辑好了以后再依次编辑下一个工作表,如果真是这样操作的话,我们倒没有这个必要同时打开多个工作表了,因为我们同时打开多个工作表的目的就是要减轻处理多个工作表的工作量的,那么我们该如何实现这样的操作呢?您可采用以下方法:首先按住“Shift"键或“Ctrl"键并配以鼠标操作,在工作簿底部选择多个彼此相邻或不相邻的工作表标签,然后就可以对其实行多方面的批量处理;接着在选中的工作表标签上按右键弹出快捷菜单,进行插入和删除多个工作表的操作;然后在“文件”菜单中选择“页面设置……”,将选中的多个工作表设成相同的页面模式;再通过“编辑”菜单中的有关选项,在多个工作表范围内进行查找、替换、定位操作;通过“格式”菜单中的有关选项,将选中的多个工作表的行、列、单元格设成相同的样式以及进行一次性全部隐藏操作;接着在“工具”菜单中选择“选项……”,在弹出的菜单中选择“视窗”和“编辑”按钮,将选中的工作表设成相同的视窗样式和单元格编辑属性;最后选中上述工作表集合中任何一个工作表,并在其上完成我们所需要的表格,则其它工作表在相同的位置也同时生成了格式完全相同的表格。高效办公Excel排序方法"集中营"排序是数据处理中的经常性工作,Excel排序有序数计算(类似成绩统计中的名次)和数据重排两类。本文以几个车间的产值和名称为例,介绍Excel2000/XP的数据排序方法。一、数值排序1.RANK函数RANK函数是Excel计算序数的主要工具,它的语法为:RANK(number,ref,order),其中number为参与计算的数字或含有数字的单元格,ref是对参与计算的数字单元格区域的绝对引用,order是用来说明排序方式的数字(如果order为零或省略,则以降序方式给出结果,反之按升序方式)。例如图1中E2、E3、E4单元格存放一季度的总产值,计算各车间产值排名的方法是:在F2单元格内输入公式“=RANK(E2,$E$2:$E$4)”,敲回车即可计算出铸造车间的产值排名是2。再将F2中的公式复制到剪贴板,选中F3、F4单元格按Ctrl+V,就能计算出其余两个车间的产值排名为3和1。如果B1单元格中输入的公式为“=RANK(E2,$E$2:$E$4,1)”,则计算出的序数按升序方式排列,即2、1和3。需要注意的是:相同数值用RANK函数计算得到的序数(名次)相同,但会导致后续数字的序数空缺。假如上例中F2单元格存放的数值与F3相同,则按本法计算出的排名分别是3、3和1(降序时)。2.COUNTIF函数COUNTIF函数可以统计某一区域中符合条件的单元格数目,它的语法为COUNTIF(range,criteria)。其中range为参与统计的单元格区域,criteria是以数字、表达式或文本形式定义的条件。其中数字可以直接写入,表达式和文本必须加引号。仍以图1为例,F2单元格内输入的公式为“=COUNTIF($E$2:$E$4,">"&E2)+1”。计算各车间产值排名的方法同上,结果也完全相同,2、1和3。此公式的计算过程是这样的:首先根据E2单元格内的数值,在连接符&的作用下产生一个逻辑表达式,即“>176.7”、“>167.3”等。COUNTIF函数计算出引用区域内符合条件的单元格数量,该结果加一即可得到该数值的名次。很显然,利用上述方法得到的是降序排列的名次,对重复数据计算得到的结果与RANK3.IF函数Excel自身带有排序功能,可使数据以降序或升序方式重新排列。如果将它与IF函数结合,可以计算出没有空缺的排名。以图1中E2、E3、E4单元格的产值排序为例,具体做法是:选中E2单元格,根据排序需要,单击Excel工具栏中的“降序排序”或“升序排序”按钮,即可使工作表中的所有数据按要求重新排列。假如数据是按产值由大到小(降序)排列的,而您又想赋予每个车间从1到n(n为自然数)的排名。可以在G2单元格中输入1,然后在G3单元格中输入公式“=IF(E3=E2,G3,G3+1)”,只要将公式复制到G4等单元格,就可以计算出其他车间的产值排名。二、文本排序选举等场合需要按姓氏笔划为文本排序,Excel提供了比较好的解决办法。如果您要将图1数据表按车间名称的笔划排序,可以使用以下方法:选中排序关键字所在列(或行)的首个单元格(如图1中的A1),单击Excel“数据”菜单下的“排序”命令,再单击其中的“选项”按钮。选中“排序选项”对话框“方法”下的“笔画排序”,再根据数据排列方向选择“按行排序”或“按列排序”,“确定”后回到“排序”对话框(图2)。如果您的数据带有标题行(如图1中的“单位”之类),则应选中“有标题行”(反之不选),然后打开“主要关键字”下拉列表,选择其中的“单位”,选中排序方式(“升序”或“降序”)后“确定”,表中的所有数据就会据此重新排列。此法稍加变通即可用于“第一名”、“第二名”等文本排序,请读者自行摸索。三、自定义排序如果您要求Excel按照“金工车间”、“铸造车间”和“维修车间”的特定顺序重排工作表数据,前面介绍的几种方法就无能为力了。这类问题可以用定义排序规则的方法解决:首先单击Excel“工具”菜单下的“选项”命令,打开“选项”对话框中的“自定义序列”选项卡(图3)。选中左边“自定义序列”下的“新序列”,光标就会在右边的“输入序列”框内闪动,您就可以输入“金工车间”、“铸造车间”等自定义序列了,输入的每个序列之间要用英文逗号分隔,或者每输入一个序列就敲回车。如果序列已经存在于工作表中,可以选中序列所在的单元格区域单击“导入”,这些序列就会被自动加入“输入序列”框。无论采用以上哪种方法,单击“添加”按钮即可将序列放入“自定义序列”中备用(图3)。使用排序规则排序的具体方法与笔划排序很相似,只是您要打开“排序选项”对话框中的“自定义排序次序”下拉列表,选中前面定义的排序规则,其他选项保持不动。回到“排序”对话框后根据需要选择“升序”或“降序”,“确定”后即可完成数据的自定义排序。需要说明的是:显示在“自定义序列”选项卡中的序列(如一、二、三等),均可按以上方法参与排序,请读者注意Excel提供的自定义序列类型。谈谈Excel输入的技巧在Excel工作表的单元格中,可以使用两种最基本的数据格式:常数和公式。常数是指文字、数字、日期和时间等数据,还可以包括逻辑值和错误值,每种数据都有它特定的格式和输入方法,为了使用户对输入数据有一个明确的认识,有必要来介绍一下在Excel中输入各种类型数据的方法和技巧。一、输入文本Excel单元格中的文本包括任何中西文文字或字母以及数字、空格和非数字字符的组合,每个单元格中最多可容纳32000个字符数。虽然在Excel中输入文本和在其它应用程序中没有什么本质区别,但是还是有一些差异,比如我们在Word、PowerPoint的表格中,当在单元格中输入文本后,按回车键表示一个段落的结束,光标会自动移到本单元格中下一段落的开头,在Excel的单元格中输入文本时,按一下回车键却表示结束当前单元格的输入,光标会自动移到当前单元格的下一个单元格,出现这种情况时,如果你是想在单元格中分行,则必须在单元格中输入硬回车,即按住Alt键的同时按回车键。二、输入分数几乎在所有的文档中,分数格式通常用一道斜杠来分界分子与分母,其格式为“分子/分母”,在Excel中日期的输入方法也是用斜杠来区分年月日的,比如在单元格中输入“1/2”,按回车键则显示“1月2日”,为了避免将输入的分数与日期混淆,我们在单元格中输入分数时,要在分数前输入“0”(零)以示区别,并且在“0”和分子之间要有一个空格隔开,比如我们在输入1/2时,则应该输入“01/2”。如果在单元格中输入“81/2”,则在单元格中显示“81/2”,而在编辑栏中显示“三、输入负数在单元格中输入负数时,可在负数前输入“-”作标识,也可将数字置在()括号内来标识,比如在单元格中输入“(88)”,按一下回车键,则会自动显示为“-88”。四、输入小数在输入小数时,用户可以向平常一样使用小数点,还可以利用逗号分隔千位、百万位等,当输入带有逗号的数字时,在编辑栏并不显示出来,而只在单元格中显示。当你需要输入大量带有固定小数位的数字或带有固定位数的以“0”字符串结尾的数字时,可以采用下面的方法:选择“工具”、“选项”命令,打开“选项”对话框,单击“编辑”标签,选中“自动设置小数点”复选框,并在“位数”微调框中输入或选择要显示在小数点右面的位数,如果要在输入比较大的数字后自动添零,可指定一个负数值作为要添加的零的个数,比如要在单元格中输入“88”后自动添加3个零,变成“88000”,就在“位数”微调框中输入“-3”,相反,如果要在输入“88”后自动添加3位小数,变成“0.088”,则要在“位数”微调框中输入“3”。另外,在完成输入带有小数位或结尾零字符串的数字后,应清除对“自动设置小数点”符选框的选定,以免影响后边的输入;如果只是要暂时取消在“自动设置小数点”中设置的选项,可以在输入数据时自带小数点。五、输入货币值Excel几乎支持所有的货币值,如人民币(¥)、英镑(£)等。欧元出台以后,Excel2000完全支持显示、输入和打印欧元货币符号。用户可以很方便地在单元格中输入各种货币值,Excel会自动套用货币格式,在单元格中显示出来,如果用要输入人民币符号,可以按住Alt键,然后再数字小键盘上按“0165”即可。六、输入日期Excel是将日期和时间视为数字处理的,它能够识别出大部分用普通表示方法输入的日期和时间格式。用户可以用多种格式来输入一个日期,可以用斜杠“/”或者“-”来分隔日期中的年、月、日部分。比如要输入“2001年12月1日”,可以在单元各种输入“2001/12/1”或者“2001-12-1七、输入时间在Excel中输入时间时,用户可以按24小时制输入,也可以按12小时制输入,这两种输入的表示方法是不同的,比如要输入下午2时30分38秒,用24小时制输入格式为:2:30:38,而用12小时制输入时间格式为:2:30:38p,注意字母“p”和时间之间有一个空格。如果要在单元格中插入当前时间,则按Ctrl+Shift+;键。了解Excel公式的错误值经常用Excel的朋友可能都会遇到一些莫名奇妙的错误值信息:#N/A!、#VALUE!、#DIV/O!等等,出现这些错误的原因有很多种,如果公式不能计算正确结果,Excel将显示一个错误值,例如,在需要数字的公式中使用文本、删除了被公式引用的单元格

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论