excel文档在线预览系统软件设计规格说明书.docx
- 文档编号:14919804
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:27
- 大小:417.97KB
excel文档在线预览系统软件设计规格说明书.docx
《excel文档在线预览系统软件设计规格说明书.docx》由会员分享,可在线阅读,更多相关《excel文档在线预览系统软件设计规格说明书.docx(27页珍藏版)》请在冰点文库上搜索。
excel文档在线预览系统软件设计规格说明书
文档编号:
项目名称–DSN–版本
Excel文档在线预览系统
软件设计规格说明书
日期:
2016-11-04
1、引言
1.1编写目的
编写本套Excel文档在线预览系统的《软件规格说明书》的目的在于进一步定制系统开发的细节问题,希望能使本系统开发工作更具体。
是为使用户、软件开发者及分析人员对该软件的初始规定有一个共同的理解,它说明了本产品的各项功能需求、性能需求和数据要求,明确标识各功能的实现过程,阐述实用背景及范围,提供客户解决问题或达到目标所需的条件或权能,提供一个度量和遵循的基准。
1.2读者对象
本文档可能的读者对象有软件的客户、业务或需求分析人员、测试人员、用户文档编写者、项目管理人员。
1.3软件项目概述
●项目名称:
Excel文档在线预览系统
●项目代号:
001
●用户单位:
软件工程国家重点实验室谢晓园老师课题组
●开发单位主管部门:
武汉大学计算机学院
●软件项目的大致功能和性能要求:
系统可以实现excel文档的上传,读出excel文档的内容,可以将excel文档的内容显示出来,实现对excel文档的在线预览功能,同时要求系统界面美观、简洁。
1.4文档概述
本文档主要包括引言、软件设计约束、软件设计描述这三部分内容。
其中引言主要说明了编写目的、读者对象、软件项目概述、文档概述以及参考资料等;软件设计约束主要说明了软件的设计目标和原则、设计的硬件平台、操作系统开发语言与工具、软件的容量和性能要求等等;软件设计描述主要包括总体结构设计、数据设计、详细设计、接口设计、人机交互界面设计以及系统出错处理设计等。
1.5参考资料
[1]DSOframer的简单介绍和资源整理,
[2]Office在线预览及PDF在线预览的实现方式大集合,
[3]类似XX文库在线预览文档flash版(支持word、excel、ppt、pdf)+在线预览文档html版,
[4]java实现附件预览(openoffice+swftools+flexpaper)
[5]ASP.NET用OfficeCOM组件将docx\pptx\xlsx转换成PDF文件
[7]java实现附件预览(openoffice+swftools+flexpaper)
[8]java通过url在线预览Word、excel、ppt、pdf、txt文档____,
[9]Java+FlexPaper+swfTools仿XX文库文档在线预览系统设计与实现
[10]C#web实现word转Html、office转Html、pdf转图片在线预览文件
[11]java仿XX实现文档在览
[12]ApachePOI-theJavaAPIforMicrosoftDocuments2.软件设计约束
2.1设计目标和原则
-本次设计的目标为实现用户所需的Excel文档在线预览系统的基本功能要求,并在此基础上使界面尽可能美观简洁友好,而且有良好的可扩充性和可移植性;
-描述为实现上述目标,在设计软件过程中遵循的一般原则:
(1)以技术先进和标准化为设计标准,设计开发遵循现有的国家设计规范软件。
(2)以功能实用性为主导思想,开发实现整个规范建设需要展示的内容,满足展示和管理的实用性。
(3)开放性和可扩展性,选择具有较大兼容能力和扩展能力强的JAVA技术体系来开发,满足将来不断提升的信息系统建设需求。
(4)以安全性为设计要求,系统设计充分考虑"安全性"。
因系统投入后将长期使用,必须保证系统长期正常稳定的运行。
采用有效的技术实现方式提高安全系数。
(5)界面应该简洁、有效、显而易见,不要在功能的可用性上妥协保持界面简洁直观,用户需要易于理解和操作的功能。
(6)建立在用户已有的经验上允许用户根据以往的经验操作系统,特别是他们从现实世界中获得的经验。
支持不同的交互技术,允许用户选择最适合自身情况的交互方式。
2.2设计约束
-硬件要求
CPU:
P43.0G以上
内存:
1GB以上
硬盘:
80G以上
CD-ROM 驱动器:
不需要
-OS要求
WindowsXP或以上Windows版本系列。
服务器:
tomcatapache-tomcat-7.0.26
浏览器:
IE6.0或以上版本、Chorme2.0或以上版本等
-开发语言
Javaweb
HTML
CSS
-开发工具
-Apachepoi开源工具
3.软件设计描述
3.1总体结构设计
3.1.1总体结构设计图如下
3.1.2总体结构设计描述
上传文件:
用户通过键入文件的路径将excel文件上传到服务器,若未发生错误则文件保存到服务器上,反之则报告出错信息要求用户检查更正。
搜索文件:
用户通过键入文件的名称在服务器上搜索excel文件,若存在则显示,反之则报告出错信息。
删去文件:
用户直接在选中的文件上进行删除和在线预览操作,若成功则删去或则在线预览,反之则显示出错信息。
3.2数据设计
3.2.1数据库设计
系统的数据库采用关系型数据库,如MySQL。
根据系统功能,即可以在线查看之前上传文件,因此数据库应有一张表,即文件信息表。
表内应有3个字段,分别为Id(主键)、文件名和上传时间。
其逻辑结构设计为:
文件信息表()
文件信息(文件编号,文件名,上传时间)
具体设计如表3.2.1-1.
数据库名:
ExcelOnlineViewSystem
表名:
表3.2.1-1数据库设计表
Id
Int
PK(主键)NN(不为空)AI(自增)
(文件名)
Varchar
NN(不为空)
UploadTime(上传时间)
Datetime
NN(不为空)
3.2.2数据结构设计
数据结构为关系型数据库,所以在程序中可以使用标准的SQL语句与数据结构进行交互。
由于系统较比简单,上传文件功能所包含的数据结构为文件名、文件路径和文件上传时间,如图3.2.2-1
上传文件
文件名
文件路径
图3.2.2-1上传功能数据结构
在线预览功能所包含的数据结构为文件名和文件路径如图3.2.2-2
在线预览
文件名
文件路径
图3.2.2-2在线预览功能数据结构
3.2.3网络通信协议
系统采用HTTP通信协议进行用户和系统间的通信。
上传文件时系统先获得文件路径以及文件名,接着读入需上传的数据,将数据保存到buffer中,接着获取服务器中保存文件的路径,创建文件名,将文件从buffer中读出,最后。
其流程如图3.2.3-1。
图3.2.3-1上传文件流程
3.3详细设计
本软件分为三个功能模块,其具体模块信息如下表所示:
功能模块
输入数据
上传Excel文档
文件路径、文件名。
显示Excel文档
文件名
在线预览文档
文件名
从上表不难看出对于一个合法操作流程来说,其调用的功能模块顺序也如上表所示,分别为上传Excel文档、显示Excel文档、在线预览文档。
用户的输入分别为文件路径和文件名
其服务端代码如下表所示。
BufferedInputStreambis=null;
URLurl=null;
HttpURLConnectionhttpUrl=null;//建立链接
url=newURL(urlReal);
httpUrl=(HttpURLConnection)url.openConnection();//连接指定的资源
httpUrl.connect();//获取网络输入流
bis=newBufferedInputStream(httpUrl.getInputStream());
content=newStringBuffer();
HSSFWorkbookworkbook=newHSSFWorkbook(bis);
for(intnumSheets=0;numSheets HSSFSheetaSheet=workbook.getSheetAt(numSheets);//获得一个sheet content.append("/n"); if(null==aSheet){ continue; } for(introwNum=0;rowNum<=aSheet.getLastRowNum();rowNum++){ content.append("/n"); HSSFRowaRow=aSheet.getRow(rowNum); if(null==aRow){ continue; } for(shortcellNum=0;cellNum<=aRow.getLastCellNum();cellNum++){ HSSFCellaCell=aRow.getCell(cellNum); if(null==aCell){ continue; } if(aCell.getCellType()==HSSFCell.CELL_TYPE_STRING){ content.append(aCell.getRichStringCellValue() .getString()); }elseif(aCell.getCellType()==HSSFCell.CELL_TYPE_NUMERIC){ booleanb=HSSFDateUtil.isCellDateFormatted(aCell); if(b){ Datedate=aCell.getDateCellValue(); SimpleDateFormatdf=newSimpleDateFormat( "yyyy-MM-dd"); content.append(df.format(date)); } } } } response.getWriter().write(content.toString()); packageyys.hpsz.cview; publicclassExcelShowerextendsDataManager{ privatestaticfinallongserialVersionUID=-8344971443770122206L; *读取Excel显示页面. *@paramproperties *@return *@throwsException */ publicStringBufferread(Mapproperties)throwsException{ HSSFSheetsheet=null; StringBufferlsb=newStringBuffer(); Stringexcel=SojaProperties.getSojaRoot()+"/page/readExcel/sale.xls"; try{ HSSFWorkbookworkbook=newHSSFWorkbook(new(excel));//获整个Excel for(intsheetIndex=0;sheetIndex sheet=workbook.getSheetAt(sheetIndex);//获所有的sheet StringsheetName=workbook.getSheetName(sheetIndex);//sheetName if(workbook.getSheetAt(sheetIndex)! =null){ sheet=workbook.getSheetAt(sheetIndex);//获得不为空的这个sheet if(sheet! =null){ intfirstRowNum=sheet.getFirstRowNum();//第一行 intlastRowNum=sheet.getLastRowNum();//最后一行 //构造Table lsb.append(" 1pxsolid#000;border-width: 1px001px;margin: 2px02px0;border-collapse: collapse;\">"); for(introwNum=firstRowNum;rowNum<=lastRowNum;rowNum++){ if(sheet.getRow(rowNum)! =null){//如果行不为空, HSSFRowrow=sheet.getRow(rowNum); shortfirstCellNum=row.getFirstCellNum();//该行的第一个单元格 shortlastCellNum=row.getLastCellNum();//该行的最后一个单元格 intheight=(int)(row.getHeight()/15.625);//行的高度 lsb.append(" 1pxsolid#000;border-width: 01px1px0;margin: 2px02px0;\">"); for(shortcellNum=firstCellNum;cellNum<=lastCellNum;cellNum++){//循环该行的每一个单元格 HSSFCellcell=row.getCell(cellNum); if(cell! =null){ if(cell.getCellType()==HSSFCell.CELL_TYPE_BLANK){ continue; }else{ StringBuffertdStyle=newStringBuffer(" 1pxsolid#000;border-width: 01px1px0;margin: 2px02px0;"); HSSFCellStylecellStyle=cell.getCellStyle(); HSSFPalettepalette=workbook.getCustomPalette();//类HSSFPalette用于求颜色的国际标准形式 HSSFColorhColor=palette.getColor(cellStyle.getFillForegroundColor()); HSSFColorhColor2=palette.getColor(cellStyle.getFont(workbook).getColor()); StringbgColor=convertToStardColor(hColor);//背景颜色 shortboldWeight=cellStyle.getFont(workbook).getBoldweight();//字体粗细 shortfontHeight=(short)(cellStyle.getFont(workbook).getFontHeight()/2);//字体大小 StringfontColor=convertToStardColor(hColor2);//字体颜色 if(bgColor! =null&&! "".equals(bgColor.trim())){ tdStyle.append("background-color: "+bgColor+";"); } if(fontColor! =null&&! "".equals(fontColor.trim())){ tdStyle.append("color: "+fontColor+";"); } tdStyle.append("font-weight: "+boldWeight+";"); tdStyle.append("font-size: "+fontHeight+"%;"); lsb.append(tdStyle+"\""); intwidth=(int)(sheet.getColumnWidth(cellNum)/35.7);// intcellReginCol=getMergerCellRegionCol(sheet,rowNum,cellNum);//合并的列(solspan) intcellReginRow=getMergerCellRegionRow(sheet,rowNum,cellNum);//合并的行(rowspan) Stringalign=convertAlignToHtml(cellStyle.getAlignment());// StringvAlign=convertVerticalAlignToHtml(cellStyle.getVerticalAlignment()); lsb.append("align=\""+align+"\"valign=\""+vAlign+"\"width=\""+width+"\""); lsb.append("colspan=\""+cellReginCol+"\"rowspan=\""+cellReginRow+"\""); lsb.append(">"+getCellValue(cell)+""); } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- excel 文档 在线 预览 系统软件 设计 规格 说明书