怎么通过JAVA往WORD的里写一张带数据表格? 50

需要向WORD插入的不是文字,而是带数据的表格,就相当于EXCLE的格式,谁有具体的例子来一个吗,或者能行得通的方法推荐一个。对了最好是高点版本的OFFICE我用的是20... 需要向WORD插入的不是文字,而是带数据的表格,就相当于EXCLE的格式,谁有具体的例子来一个吗,或者能行得通的方法推荐一个。
对了 最好是高点版本的OFFICE 我用的是2013的 POI什么的,肯定不支持吧? 谁有肯定能行得通的方法来一个。
展开
 我来答
匿名用户
2017-07-20
展开全部
首先需加载你的SQLCUTE是不能错(指明点就是数据库的连接)创建的方法查询所有的数据:publicListAllObject();得到所有的数据,我们就可以开始了(最好是写在你的Service中)创建表格输出的方法(我们的数据肯定是以流的形式写进写出的,表明点就是下载该文件\\恩文件上传下载应该会吧)好话不多说,开始工程在service中定义方法:publicInputStreamgetInputStream(){//为了好看点我就采用和word同类的软件exel//相当于我们创建的exel的窗体,可以查看exel的表格样式就是.xslHSSFWorkbookwb=newHSSFWorkbook();//创建sheet1一般我们的exel默认的有三个exelHSSFSheeths=wb.createSheet("sheet1");//创建row行HSSFRowhr=hs.createRow(0);//创建单元格HSSFCellhc=hr.createCell((short)0);//设置单元格的编码hc.setEncoding(HSSFCell.ENCODING_UTF_16);//设置表头的value的值hc.setCellValue("ID");//还要创建多个表头的值hc=hr.createCell((short)1);hc.setEncoding(HSSFCell.ENCODING_UTF_16);hc.setCellValue("姓");hc=hr.createCell((short)2);hc.setEncoding(HSSFCell.ENCODING_UTF_16);hc.setCellValue("名");hc=hr.createCell((short)3);hc.setEncoding(HSSFCell.ENCODING_UTF_16);hc.setCellValue("年龄");//从数据库中查出所有的用户Listls=iuserdao.AllListUser();//便利所有的数据for(inti=0;i<ls.size();i++){//得到第i个数据Userus=ls.get(i);//把数据放入表格中i是从0开始读取所以我们加一hr=hs.createRow(i+1);//设置编码hc=hr.createCell((short)0);hc.setEncoding(HSSFCell.ENCODING_UTF_16);//设置序号也就是在ID下的值,同样的是从0开始hc.setCellValue(i+1);//我们已经从数据库中获得了数据,所以我们可以从user中取出hc=hr.createCell((short)1);hc.setEncoding(HSSFCell.ENCODING_UTF_16);hc.setCellValue(us.getUname());hc=hr.createCell((short)2);hc.setEncoding(HSSFCell.ENCODING_UTF_16);hc.setCellValue(us.getSuname());hc=hr.createCell((short)3);hc.setEncoding(HSSFCell.ENCODING_UTF_16);hc.setCellValue(us.getAge());}//这里是在硬盘上创建一个临时文件用于用户下载,这是第一种方法//放入文件,所以必须创建个文件StringfileName=com.test.util.CUtils.getRandomString(5);//上面的文件名是用随机数写的,这样就会没相同的文件,便于输写fileName=newStringBuffer().append(fileName).append(".xls").toString();finalFilefile=newFile(fileName);//将文件输出到我们的硬盘try{OutputStreamos=newFileOutputStream(file);//把我们的数据输出到我们的HSSFWookbook中,以写入文件中wb.write(os);os.close();}catch(Exceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}//构建个输入流InputStreamis=null;try{//输入文件is=newFileInputStream(file);}catch(FileNotFoundExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}returnis;//返回该输入流,完成}写完之后,可在servlet中直接调用,service中的getInputStream方法你可以写方法接收,也可以写流接收,因为过来的方法有返回值ISpublicInputStreamgetDownloadFile(){returniuserservice.getInputStream();}这里后面就是你自己的事勒,简单点就是重定向某个页面(查看成功啦)等等这有个弊端就是在Disk(磁盘)创建了多个文件,也就是不用的时候就是垃圾数据。实在有点勉强的话,加我 :236133039帮你解答(实战操作)
WgzFly00
2014-03-24
知道答主
回答量:43
采纳率:0%
帮助的人:12万
展开全部
使用poi。先在后台查出你想要的数据,然后使用poi来生成带格式的文档。具体例子网上很多,关键字:poi生成Word。试试看
你后边说的那个问题就不太懂了。一般情况下,都是生成低版本的office,高版本的会自动兼容的。2013的我不知道,比如你可以生成07的Word,2013的应该能兼容,也就是说可以打开。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2017-08-18
展开全部
这个你可以试试一些控件比如iWebOffice2009他可以根据自定义的书签自己定义一套模板如果加载的时候填充模板给模板中书签赋值就可以了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yearh
2014-03-24 · TA获得超过217个赞
知道小有建树答主
回答量:136
采纳率:0%
帮助的人:183万
展开全部
用最新版本的POI 3.10,jar可以去http://archive.apache.org/dist/poi/dev/bin/
下载 poi-bin-3.10-beta2-20130904.zip
HSSF是指2007年以前的,XSSF是指2007年版本以上用的.
也就是说2013要用XSSF来做excel.
具体的用法与例子,请看http://poi.apache.org/spreadsheet/quick-guide.html
里面有很详细用XSSFWorkbook导出xlsx格式的例子.
望采纳.
更多追问追答
追问
我不是要做EXCEL 我是想在word里用java把数据库返回的数据写一个表格。
追答
难道你不是想把数据库里的数据写到excel里么??

一种方法:把现成的excel,即excel里已经有表格样式的模样,只需要把从数据库取出来的数据,分别填写到相当的表格对应的单元格里.

第二种方法:没有现成的excel, 纯用java生成excel以及带表格样式模样的,包括所有data.,完全可以JAVA实现,包括表格的黑色边框,title,remarks什么的..
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
最后原则
2014-03-24
知道答主
回答量:1
采纳率:0%
帮助的人:1390
展开全部
用iText可以
追问
你了解iText吗  我有些问题想问一下?
追答
还行我也在做这两天,也遇见了问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式