永发信息网

java怎么导出excel

答案:2  悬赏:70  手机版
解决时间 2021-05-10 21:12
java 从数据库里读出了一个表 怎么写到excel里去啊 要方便点的 我写的就是个jar 运行后直接就生成excel
最佳答案

public void modifyExcel(String realPath,String sheetname,int xLocaion,int yLocation,String value){
POIFSFileSystem fs=null;
HSSFWorkbook wb=null;
try {
File file=new File(realPath);
if(file.exists()){
fs = new POIFSFileSystem(new FileInputStream(realPath));
wb=new HSSFWorkbook(fs);
HSSFSheet s=wb.getSheetAt(0);
//函数处理时横纵坐标从索引0开始
HSSFRow row=s.getRow(xLocaion-1);    
HSSFCell cell=null;
if(row!=null){
cell=row.getCell(yLocation-1);
if(cell==null){
cell=row.createCell(yLocation-1);
}
}else{
row=s.createRow(xLocaion-1);
cell=row.createCell(yLocation-1);
}
cell.setCellValue(value);
}else{
wb=new HSSFWorkbook();
HSSFSheet s=wb.createSheet();
wb.setSheetName(0, sheetname);
HSSFRow row=s.createRow(xLocaion-1);
HSSFCell cell=row.createCell(yLocation-1);
cell.setCellValue(value);
}
FileOutputStream fos=new FileOutputStream(realPath); 
wb.write(fos);
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();

 
}
第二种就是运用了对象,以对象为单位写入数据,即一个对象的所有属性在一行列出,有多少个对象就有多少行,此方法比较适用于个人信息导出之类的应用,至于导出属性的顺序问题在导出对象的实体类内部改动下即可:

public  void outputExcel(String realPath,String sheetname,UserModel[] users){
FileOutputStream fos;
try {
File file=new File(realPath);
fos = new FileOutputStream(file, true);
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet s=wb.createSheet();
wb.setSheetName(0, sheetname);
HSSFRow[] rows=new HSSFRow[users.length];
HSSFCell[][] cells=new HSSFCell[20][20];
for (int i=0; i<users.length;i++) { // 相当于excel表格中的总行数
PropertyDescriptor[] descriptors=getAvailablePropertyDescriptors(users[i]);
rows[i]=s.createRow(i);
for (int j=0; descriptors!=null&&j<descriptors.length;j++) {
java.lang.reflect.Method readMethod = descriptors[j]
.getReadMethod();
cells[i][j]=rows[i].createCell(j);
Object value=readMethod.invoke(users[i], null);
cells[i][j].setCellValue(value.toString());
}
}
wb.write(fos);
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}

全部回答

使用jxl来操作。

JXL(Java Excel API)是一个用来动态读写Excel文件的开源框架,利用它可以在任何支持Java的操作系统上动态读写Excel文件。

具体信息参考 http://www.andykhan.com/jexcelapi/

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
为什么只有圣诞老爷爷,而没有圣诞老奶奶呢?
我想问下一个人在世界上活的没有了意思还要活
办公室挂什么诗词好,有什么适合女孩看的书,
经常发呆是为什么?
那位帮忙给写一篇月考总结啊,英语的
梅县2010年普通高考录取考生名单
咽喉炎治不好吗?
男生一个人出去玩什么,怎样去追一个男生
ava的队长邀请怎么回事?
请问剑魂PK刷图综合怎么加点的啊!十万火急!
热血江湖下载的补丁安装到什么地方,说清楚点
最近有哪些日本悬疑连续剧?无聊ING
奥比岛机器人身份大追查的密码
大连理工大学怎么样,重庆交通大学和哈尔滨理
问下,CFJUA级杀敌图标是什么样的?
推荐资讯
急需嘉乐士漆驻河南办事的电话
怎样才能被自己喜欢的人爱
孩子的爸为什么这样
东方神起解散勒麽
淮南婚纱摄影行业里挺有名的红镜头在哪?
武林外传法系穿什么装备好
再的组词有哪些词语,再组词有哪些词语
是不是黄日华扮演的乔峰要远好于新版天龙八部
家人反对的爱情都是不幸福的吗?亲情与爱情你
粉红毛衣搭配什么外套,灰色外套配什么颜色的
QQ宝贝里面鱼苗怎么买?
世界三大宗教的创始人是?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?