java 如何将sqlserver中的数据转到word 以表格形式 20

 我来答
huigutang
2009-11-05 · 超过21用户采纳过TA的回答
知道答主
回答量:52
采纳率:0%
帮助的人:56.2万
展开全部
首先需加载你的SQLCUTE是不能错(指明点就是数据库的连接)
创建的方法查询所有的数据:
public List<User> AllObject();
得到所有的数据,我们就可以开始了(最好是写在你的Service中)
创建表格输出的方法(我们的数据肯定是以流的形式写进写出的,表明点就是下载该文件\\恩文件上传下载应该会吧)
好话不多说,开始工程
在service中定义方法:
public InputStream getInputStream(){
//为了好看点我就采用和word同类的软件exel
//相当于我们创建的exel的窗体,可以查看exel的表格样式就是.xsl
HSSFWorkbook wb=new HSSFWorkbook();

//创建sheet1 一般我们的exel默认的有三个exel
HSSFSheet hs=wb.createSheet("sheet1");

//创建row行

HSSFRow hr=hs.createRow(0);

//创建单元格

HSSFCell hc=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("年龄");

//从数据库中查出所有的用户

List<User> ls=iuserdao.AllListUser();
//便利所有的数据

for(int i=0;i<ls.size();i++){

//得到第i个数据

User us=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());
}
//这里是在硬盘上创建一个临时文件用于用户下载,这是第一种方法
//放入文件 ,所以必须创建个文件
String fileName=com.test.util.CUtils.getRandomString(5);
//上面的文件名是用随机数写的,这样就会没相同的文件,便于输写
fileName=new StringBuffer().append(fileName).append(".xls").toString();
final File file=new File(fileName);

//将文件输出到我们的硬盘

try {
OutputStream os=new FileOutputStream(file);
//把我们的数据输出到我们的HSSFWookbook中 ,以写入文件中
wb.write(os);

os.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

//构建个输入流
InputStream is=null;
try {
//输入文件
is=new FileInputStream(file);

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return is; //返回该输入流,完成
}
写完之后,可在servlet中直接调用,service中的getInputStream方法
你可以写方法接收,也可以写流接收,因为过来的方法有返回值IS
public InputStream getDownloadFile(){
return iuserservice.getInputStream();
}

这里后面就是你自己的事勒,简单点就是重定向某个页面(查看成功啦)等等
这有个弊端就是在Disk(磁盘)创建了多个文件,也就是不用的时候就是垃圾数据。实在有点勉强的话,加我QQ:236133039帮你解答(实战操作)
pujia12345
2009-11-05 · TA获得超过3680个赞
知道大有可为答主
回答量:3456
采纳率:0%
帮助的人:2953万
展开全部
jxl.jar工具包
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
就雪存E
2009-11-05 · TA获得超过3280个赞
知道大有可为答主
回答量:9808
采纳率:22%
帮助的人:1065万
展开全部
一般数据转的是Excel吧
貌似apache的poi可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式