POI的配置问题

wanghonghui1009 2010-10-11 08:41:12
我需要对excel word pdf进行操作,现在下了poi3.6,但是不知道怎么用,需要配置环境变量吗?将它放到什么目录下面?
...全文
138 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
wanghonghui1009 2010-10-12
能不能给我一个详细点的操作过程!
回复
Ginie 2010-10-12
不需要,只要用一个poi的包就行了。原来写的一个列子

package com.test.service.impl;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import com.test.bean.User;
import com.test.dao.UserDAO;
import com.test.service.UserService;
import com.test.util.CharacterUtils;

public class UserServiceImpl implements UserService {


private UserDAO userdao;

public UserDAO getUserdao() {
return userdao;
}

public void setUserdao(UserDAO userdao) {
this.userdao = userdao;
}

public void delete(User user) {

this.userdao.removeUser(user);
}

public List<User> findAll() {
return this.userdao.findAllUsers();
}

public User findById(Integer id) {
return this.userdao.findUserById(id);
}

public void save(User user) {
this.userdao.saveUser(user);

}

public void update(User user) {
this.userdao.updateUser(user);
}


//用于在页面生成一个excel文档 采用poi的jar包
public InputStream getInputStream() {
HSSFWorkbook wb = new HSSFWorkbook();

HSSFSheet sheet = wb.createSheet("sheet1");

HSSFRow row = sheet.createRow(0);

HSSFCell cell = row.createCell((short)0);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("序号");

cell = row.createCell((short)1);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("姓");

cell = row.createCell((short)2);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("名");

cell = row.createCell((short)3);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("年龄");

List<User> list = this.findAll();

for(int i = 0; i<list.size(); ++i)
{
User user = list.get(i);

row = sheet.createRow(i + 1);

cell = row.createCell((short)0);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(i + 1);

cell = row.createCell((short)1);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(user.getFirstname());

cell = row.createCell((short)2);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(user.getLastname());

cell = row.createCell((short)3);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(user.getAge());
}

String fileName = CharacterUtils.getRandomString(10);

fileName = new StringBuffer(fileName).append(".xls").toString();

final File file = new File(fileName);

try {
OutputStream os =new FileOutputStream(file);

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();
}

new Thread(new Runnable()
{

public void run() {

try {
Thread.sleep(15000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

file.delete();
}
}).start();

return is;

}

}



上面的代码是写在服务层的,就是service的实现类

jsp页面代码
<s:a href="generateExcel.action">生成EXCEL文档</s:a>】
这样就可以调用了
回复
不善^ 2010-10-11
就是一个jar包 你导入到项目里的 lib里就OK 具体 如何对office进行 读写
你可以百度上搜索个例子
回复
wanghonghui1009 2010-10-11
那不是没一个建一个工程都得放进去啊。。。
回复
lctf66 2010-10-11
和其他程序一起放到工程目录下就行了啊。
回复
liubo_0329 2010-10-11
我没搞过!!可以学习!!
友情帮顶。。。
回复
ruru521elva 2010-10-11
先升本的好 貌似也不会 坐坐 沙发 重新安装
回复
qq_992784113 2010-10-11
需要在web.xml中配置下poi的过滤器,将poi相关jar包导入到lib目录下就可以了。其他的就是写代码了
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2010-10-11 08:41
社区公告
暂无公告