springmvc poi 导出word 复选框 怎么用
Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。
这里的方法支持导出excel至项目所在服务器,或导出至客户端浏览器供用户下载,下面我把两个实例都放出来。
1.下载所需POI的jar包,并导入项目。
2.添加一个User类,用于存放用户实体,类中内容如下:1 package com.mvc.po;23 public class User {4 private int id;5 private String name;6 private String password;7 private int age;89 public User() {10 11 }12 13 public User(int id, String name, String password, int age) {14 this.id = id;15 this.name = name;16 this.password = password;17 this.age = age;18 }19 public int getId() {20 return id;21 }22 public void setId(int id) {23 this.id = id;24 }25 public String getName() {26 return name;27 }28 public void setName(String name) {29 this.name = name;30 }31 public String getPassword() {32 return password;33 }34 public void setPassword(String password) {35 this.password = password;36 }37 public int getAge() {38 return age;39 }40 public void setAge(int age) {41 this.age = age;42 }43 }3.添加一个UserController类,类中内容如下:1 package com.mvc.controller;23 import java.text.SimpleDateFormat;4 import java.util.Date;56 import javax.servlet.ServletOutputStream;7 import javax.servlet.http.HttpServletResponse;89 import org.springframework.stereotype.Controller;10 import org.springframework.beans.factory.annotation.Autowired;11 import org.springframework.web.bind.annotation.RequestMapping;12 import org.springframework.web.bind.annotation.ResponseBody;13 14 import com.mvc.po.User;15 import com.mvc.service.UserService;16 17 @Controller18 public class UserController {19 20 @Autowired21 private UserService userService;22 23 @RequestMapping("/export.do")24 public @ResponseBody String export(HttpServletResponse response){ 25 response.setContentType("application/binary;charset=utf-8");26 try{27 ServletOutputStream out=response.getOutputStream();28 String fileName=new String(("UserInfo "+ new SimpleDateFormat("yyyy-MM-dd").format(new Date())).getBytes(),"UTF-8");29 response.setHeader("Content-disposition", "attachment; filename=" + fileName + ".xls");30 String[] titles = { "用户编号", "用户姓名", "用户密码", "用户年龄" }; 31 userService.export(titles, out);32 return "success";33 } catch(Exception e){34 e.printStackTrace();35 return "导出信息失败";36 }37 }38 }4.添加一个接口类UserService和实现类UserServiceImpl,类中内容如下:1 package com.mvc.service;2 3 import javax.servlet.ServletOutputStream;4 import com.mvc.po.User;5 6 public interface UserService {7 public void export(String[] titles, ServletOutputStream out);8 }1 package com.mvc.service.impl;23 import java.text.SimpleDateFormat;4 import java.util.List;56 import javax.servlet.ServletOutputStream;78 import com.mvc.dao.UserDAO;9 import com.mvc.po.User;10 import com.mvc.service.UserService;11 12 import org.apache.poi.hssf.usermodel.HSSFCell;13 import org.apache.poi.hssf.usermodel.HSSFCellStyle;14 import org.apache.poi.hssf.usermodel.HSSFRow;15 import org.apache.poi.hssf.usermodel.HSSFSheet;16 import org.apache.poi.hssf.usermodel.HSSFWorkbook;17 import org.springframework.beans.factory.annotation.Autowired;18 import org.springframework.stereotype.Service;19 20 @Service21 public class UserServiceImpl implements UserService {22 23 @Autowired24 private UserDAO userDAO;25 26 @Override27 public void export(String[] titles, ServletOutputStream out) { 28 try{29 // 第一步,创建一个workbook,对应一个Excel文件30 HSSFWorkbook workbook = new HSSFWorkbook();31 // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet32 HSSFSheet hssfSheet = workbook.createSheet("sheet1");33 // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short34 HSSFRow hssfRow = hssfSheet.createRow(0);35 // 第四步,创建单元格,并设置值表头 设置表头居中36 HSSFCellStyle hssfCellStyle = workbook.createCellStyle();37 //居中样式38 hssfCellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);39 40 HSSFCell hssfCell = null;41 for (int i = 0; i < titles.length; i++) {42 hssfCell = hssfRow.createCell(i);//列索引从0开始43 hssfCell.setCellValue(titles[i]);//列名144 hssfCell.setCellStyle(hssfCellStyle);//列居中显示 45 }46 47 // 第五步,写入实体数据 48 List users = userDAO.query(); 49 50 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");51 if(users != null && !users.isEmpty()){52 for (int i = 0; i < users.size(); i++) {53 hssfRow = hssfSheet.createRow(i+1); 54...
android/java 怎样用 thrift 协议向服务端发送消息
[plain] view plaincopynamespace java service.test service Demo { string sayWord(1:string word) } DemoService.java[java] view plaincopypackage service.test; import org.apache.thrift.TException; import service.test.Demo.Iface; public class DemoService implements Iface { @Override public String sayWord(String word) throws TException { System.out.println("receive " + word); return "hello " + word; } } MyServer.java[java] view plaincopypackage service.test; import org.apache.thrift.protocol.TBinaryProtocol; import org.apache.thrift.protocol.TBinaryProtocol.Factory; import org.apache.thrift.server.TServer; import org.apache.thrift.server.TThreadPoolServer; import org.apache.thrift.server.TThreadPoolServer.Args; import org.apache.thrift.transport.TServerSocket; import org.apache.thrift.transport.TTransportException; public class MyServer { public void startServer() { try { TServerSocket serverTransport = new TServerSocket(8989); Demo.Processor process = new Demo.Processor(new DemoService()); Factory portFactory = new TBinaryProtocol.Factory(true, true); Args args = new Args(serverTransport); args.processor(process); args.protocolFactory(portFactory); TServer server = new TThreadPoolServer(args); server.serve(); } catch (TTransportException e) { e.printStackTrace(); } } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub MyServer server = new MyServer(); server.startServer(); } } Client.java[java] view plaincopypackage service.test; import org.apache.thrift.TException; import org.apache.thrift.protocol.TBinaryProtocol; import org.apache.thrift.protocol.TProtocol; import org.apache.thrift.transport.TSocket; import org.apache.thrift.transport.TTransport; import org.apache.thrift.transport.TTransportException; public class Client { public void startClient() { TTransport transport; try { transport = new TSocket("localhost", 8989); TProtocol protocol = new TBinaryProtocol(transport); Demo.Client client = new Demo.Client(protocol); transport.open(); System.out.println(client.sayWord("welcome to use thrift...")); transport.close(); } catch (TTransportException e) { e.printStackTrace(); } catch (TException e) { e.printStackTrace(); } } public static void main(String[] args) { Client client = new Client(); client.startClient(); } }
如何做好.NET三层框架的项目?
楼主问的是现在主流的编程技术.NET三层框架,我不妨来谈谈自己的意见吧希望朋友们留下自己对三层架构的理解。
。
。
三层体系结构的概念用户界面表示层(USL) 业务逻辑层(BLL) 数据访问层(DAL) BLL将USL与DAL隔开了,并且加入了业务规则各层的作用 1:数据数据访问层:主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务.2:业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。
3:表示层:主要表示WEB方式,也可以表示成WINFORM方式,WEB方式也可以表现成:aspx, 如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。
具体的区分方法1:数据数据访问层:主要看你的数据层里面有没有包含逻辑处理,实际上他的各个函数主要完成各个对数据文件的操作。
而不必管其他操作。
2:业务逻辑层:主要负责对数据层的操作。
也就是说把一些数据层的操作进行组合。
3:表示层:主要对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问。
三层结构解释所谓三层体系结构,是在客户端与数据库之间加入了一个中间层,也叫组件层。
这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才是三层体系结构,三层是指逻辑上的三层,即使这三个层放置到一台机器上。
三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。
通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交换.开发人员可以将应用的商业逻辑放在中间层应用服务器上,把应用的业务逻辑与用户界面分开。
在保证客户端功能的前提下,为用户提供一个简洁的界面。
这意味着如果需要修改应用程序代码,只需要对中间层应用服务器进行修改,而不用修改成千上万的客户端应用程序。
从而使开发人员可以专注于应用系统核心业务逻辑的分析、设计和开发,简化了应用系统的开发、更新和升级工作。
那么为什么要应用“中间业务层”呢?举些例子: 我们假设有一段登录代码,则可以这样处理Web程序,外观层负责接收前台页面的数据,然后传给中间层,中间层对数据进行处理,比如格式化,防SQL注入等等一些,这样的数据再传给数据访问层然后与数据库进行操作,比如与数据库的用户名和密码匹配等等一些代码。
“中间业务层”的用途有很多,例如:验证用户输入数据、缓存从数据库中读取的数据等等……但是,“中间业务层”的实际目的是将“数据访问层”的最基础的存储逻辑组合起来,形成一种业务规则。
例如:“在一个购物网站中有这样的一个规则:在该网站第一次购物的用户,系统为其自动注册”。
这样的业务逻辑放在中间层最合适: 在“数据访问层”中,最好不要出现任何“业务逻辑”!也就是说,要保证“数据访问层”的中的函数功能的原子性!即最小性和不可再分。
“数据访问层”只管负责存储或读取数据就可以了。
ASP.NET中的三层结构说明完善的三层结构的要求是:修改表现层而不用修改逻辑层,修改逻辑层而不用修改数据层。
否则你的应用是不是多层结构,或者说是层结构的划分和组织上是不是有问题就很难说.不同的应用有不同的理解,这只是一个概念的问题. 理解ASP.NET中的三层结构——为什么要分三层?我们用三层结构主要是使项目结构更清楚,分工更明确,有利于后期的维护和升级。
它未必会提升性能,因为当子程序模块未执行结束时,主程序模块只能处于等待状态。
这说明将应用程序划分层次,会带来其执行速度上的一些损失。
但从团队开发效率角度上来讲却可以感受到大不相同的效果。
需要说明一下,三层结构不是.NET的专利,也不是专门用在数据库上的技术。
它是一种更加普适的架构设计理念。
此种架构要在数据库设计上注意表之间的关系,尽力满足主与子的关系。
在功能上对用户要有一定的限制,不要表现在对于子表的删除操作一定要慎重,以免造成主表与子表的数据在逻辑上出现的主表的外键在子表中没有相对应的值。
对于表的综合查询方法是:先对主表查询,调用主表所对应的DL。
再根据主表的记录分别对每一个子表进行查询。
将自表的查询结果添加的主表后,形成一个大的查询集合。
对于表的操作(增删改):此时只对主表进行操作,调用主表对应的DL中的操作方法。
RL层是逻辑判断层,主要是对页面上传入的数据进行逻辑判断。
RL层之上就是UI如何建立一个三层体系结构解决方案新建一个空白解决方案。
然后: “添加”-“新建项目”-“其他项目”-“企业级模版项目”-“C#生成块”-“数据访问”(数据层,下简称D层) “添加”-“新建项目”-“其他项目”-“企业级模版项目”-“C#生成块”-“业务规则”(业务层,下简称C层) “添加”-“新建项目”-“其他项目”-“企业级模版项目”-“...
计算机常用英语单词
帮你找了一下 我想应该够全的吧计算机常用英语单词中英文对照查询 [请按CTRL+F键]AActive-matrix主动距陈Adapter cards适配卡Advanced application高级应用Analytical graph分析图表Analyze分析Animations动画Application software 应用软件Arithmetic operations算术运算Audio-output device音频输出设备Access time存取时间access存取accuracy准确性ad network cookies广告网络信息记录软件Add-ons附软件Address地址Agents代理Analog signals模拟信号Applets程序Asynchronous communications port异步通信端口Attachment附件BBar code条形码Bar code reader条形码读卡器Basic application基础程序Binary coding schemes二进制译码方案Binary system二进制系统Bit比特Browser浏览器Bus line总线Backup tape cartridge units备份磁带盒单元Bandwidth带宽Bluetooth蓝牙Broadband宽带Browser浏览器Business-to-business企业对企业电子商务Business-to-consumer企业对消费者Bus总线CCables连线Cell单元箱Chain printer链式打印机Character and recognition device字符标识识别设备Chart图表Chassis支架Chip芯片Clarity清晰度Closed architecture封闭式体系结构Column列Combination key结合键computer competency计算机能力connectivity连接,结点Continuous-speech recognition system连续语言识别系统Control unit操纵单元Cordless or wireless mouse无线鼠标Cable modems有线调制解调器carpal tunnel syndrome腕骨神经综合症CD-ROM可记录光盘CD-RW可重写光盘CD-R可记录压缩光盘Channel信道Chat group谈话群组chlorofluorocarbons(CFCs) ]氯氟甲烷Client客户端Coaxial cable同轴电缆cold site冷战Commerce servers商业服务器Communication channel信道Communication systems信息系统Compact disc rewritableCompact disc光盘computer abuse amendments act of 19941994计算机滥用法案computer crime计算机犯罪computer ethics计算机道德computer fraud and abuse act of 1986计算机欺诈和滥用法案computer matching and privacy protection act of 1988计算机查找和隐私保护法案Computer network计算机网络computer support specialist计算机支持专家computer technician计算机技术人员computer trainer计算机教师Connection device连接设备Connectivity连接Consumer-to-consumer个人对个人cookies-cutter programs信息记录截取程序cookies信息记录程序 cracker解密高手cumulative trauma disorder积累性损伤错乱Cybercash电子现金Cyberspace计算机空间cynic愤世嫉俗者DDatabase数据库database files数据库文件Database manager数据库管理Data bus数据总线Data projector数码放映机Desktop system unit台式电脑系统单元Destination file目标文件Digital cameras数码照相机Digital notebooks数字笔记本Digital bideo camera数码摄影机Discrete-speech recognition system不连续语言识别系统Document文档document files文档文件Dot-matrix printer点矩阵式打印机Dual-scan monitor双向扫描显示器Dumb terminal非智能终端data security数据安全Data transmission specifications数据传输说明database administrator数据库管理员Dataplay数字播放器Demodulation解调denial of service attack拒绝服务攻击Dial-up service拨号服务Digital cash数字现金Digital signals数字信号Digital subscriber line数字用户线路Digital versatile disc数字化通用磁盘Digital video disc数字化视频光盘Direct access直接存取Directory search目录搜索disaster recovery plan灾难恢复计划Disk caching磁盘驱动器高速缓存Diskette磁盘Disk磁碟 Distributed data processing system分部数据处理系统Distributed processing分布处理Domain code域代码Downloading下载DVD 数字化通用磁盘DVD-R 可写DVDDVD-RAM DVD随机存取器DVD-ROM 只读DVDEe-book电子阅读器Expansion cards扩展卡end user终端用户e-cash电子现金e-commerce电子商务electronic cash电子现金electronic commerce电子商务electronic communications privacy act of1986电子通信隐私法案encrypting加密术energy star能源之星Enterprise computing企业计算化environment环境Erasable optical disks可擦除式光盘ergonomics人类工程学ethics道德规范External modem外置调制解调器extranet企业外部网FFax machine传真机Field域Find搜索FireWire port port火线端口Firmware固件Flash RAM闪存Flatbed scanner台式扫描器Flat-panel monitor纯平显示器 floppy disk软盘Formatting toolbar格式化工具条Formula公式Function函数fair credit reporting act of 1970公平信用报告法案Fiber-optic cable光纤电缆File compression文件压缩File decompression文件解压缩filter过滤firewall防火墙firewall防火墙Fixed disk固定硬盘Flash memory闪存Flexible disk可折叠磁盘Floppies磁盘Floppy disk软盘Floppy-disk cartridge磁盘盒Formatting格式化freedom of information act of 1970信息自由法案frustrated受挫折Full-duplex communication全双通通信...
...Visual C++ 2008 Service Pack 1 Redistributable Package 的安全更新...
Servive Pack 1 就是对于 .NET Framework 3.5 平台的SP1补丁,在没有安装SP1补丁的时候,你的vs只能创建网站(WebSite),不能创建web应用程序(WebApplication),网站无法集成到dll中,发布时必须对所有文件发布,而web应用程序可以集成到dll中,发布网站的时候只需要发布.aspx文件和dll就可以了。
但是网站可以动态编译,在运行状态下进行代码的修改(主要优势),而web应用程序不可以,只能停止运行后修改,再进行编译。
网站更新的时候只更新对应的文件就可以,web应用程序更新的时候,需要重新编译,更新dll,然后只需要把dll上传到服务器就可以了。
这三个第一个.NET Framework 3.5是框架,如果要运行3.5框架开发的应用程序,或者要作为服务器发布网站,需要安装框架。
第二个和第三个是对3.5框架的补丁。
建议从微软官方下载,下载地址:http://www.microsoft.com/downloads/details.aspx?FamilyID=333325fd-ae52-4e35-b531-508d977d32a6&DisplayLang=zh-cn 。
Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package 的...
1.打开保存有图片的word文档。
2. 在文件菜单中选择另存为。
3.将文件另存为htm或html格式的网页。
4.打开保存文件夹,可以看到保存网页的位置会有一个files的文件夹。
5.打开这个文件夹,可以看到,word文档中的图片都被以png格式保存到这个文件夹里,图片文件名的前缀是image,并且按顺序进行了命名。
装microsoft office 2007 sp2"there are no products affected by this ...
That particular error usually comes from something the Office 2007 Service Pack 1 (SP1) update CD, rather than Office 2007 itself,when Office 2007 is not already on the system, or if the MS Office Access 2007 Runtime is the only product on the system.
转载请注明出处51数据库 » word service package
向進之