首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

java中怎么将数据库中的数据导出到excel中(急求完整代码)

2013-08-01 
java中如何将数据库中的数据导出到excel中(急,求完整代码)做了一个项目一个功能是将数据库中的数据导出到e

java中如何将数据库中的数据导出到excel中(急,求完整代码)
做了一个项目一个功能是将数据库中的数据导出到excel,不会做求大神指点 数据库 Excel
[解决办法]

public static String writeExcel(List listtitle, List listtype, List listcontent,List<Integer> widths,
List<Boolean> iswrap, String filedirpath, String filesavename, String title, int titlesize) {

File filepath = new File(filedirpath);
if (filepath.exists()) {
// log.info("路径已经存在!<br/>");
} else {
filepath.mkdir();
}
String sCurrPath = filedirpath + "/" + filesavename ;
// String myfilepath = request.getRealPath(sCurrPath);
File file = new File(sCurrPath);
try {
file.createNewFile();
// 获取文件的URL地址
} catch (Exception e) {
// log.error("创建文件失败!");
}
// 以下开始输出到EXCEL
try {
/************ 创建工作簿 *************/
WritableWorkbook workbook = Workbook.createWorkbook(new File(
sCurrPath));

/************ 创建工作表 *************/

WritableSheet sheet = workbook.createSheet("导出项目", 0);
// sheet.setPageSetup(5,true);

/************ 设置纵横打印(默认为纵打)、打印纸 ******************/
// sheet.setPageSetup(PageOrientation.LANDSCAPE.LANDSCAPE,0,0);
// sheet.setPageSetup(PageOrientation.LANDSCAPE.LANDSCAPE,PaperSize.A4,0,0);
// sheet.addRowPageBreak(12);
jxl.SheetSettings sheetset = sheet.getSettings();
sheetset.setProtected(false);

// sheet.setColumnView(0,5);
// sheet.setColumnView(1,12);

/************** 设置单元格字体 ***************/
WritableFont NormalFont = new WritableFont(WritableFont.ARIAL, 10,WritableFont.BOLD);
WritableFont BoldFont = new WritableFont(WritableFont.ARIAL, 10,WritableFont.BOLD);
WritableFont Font = new WritableFont(WritableFont.ARIAL, 10,WritableFont.NO_BOLD);

/************** 以下设置几种格式的单元格 *************/
// 用于正文居左
WritableCellFormat wcf_left = new WritableCellFormat(NormalFont);


wcf_left.setBorder(Border.NONE, BorderLineStyle.THIN); // 线条
wcf_left.setVerticalAlignment(VerticalAlignment.TOP); // 文字垂直对齐
wcf_left.setAlignment(Alignment.LEFT); // 文字水平对齐
wcf_left.setWrap(false); // 文字是否换行

// 用于正文居右
WritableCellFormat wcf_right = new WritableCellFormat(NormalFont);
wcf_right.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条
wcf_right.setVerticalAlignment(VerticalAlignment.CENTRE); // 文字垂直对齐
wcf_right.setAlignment(Alignment.RIGHT); // 文字水平对齐
wcf_right.setWrap(false); // 文字是否换行

// 用于正文居中
WritableCellFormat wcf_center = new WritableCellFormat(Font);
//wcf_center.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条
wcf_center.setVerticalAlignment(VerticalAlignment.CENTRE); // 文字垂直对齐
wcf_center.setAlignment(Alignment.CENTRE); // 文字水平对齐
wcf_center.setWrap(false); // 文字是否换行

// 用于正文居中标题
WritableCellFormat wcf_title = new WritableCellFormat(NormalFont);
wcf_title.setBorder(Border.ALL, BorderLineStyle.THICK); // 线条
wcf_title.setVerticalAlignment(VerticalAlignment.CENTRE); // 文字垂直对齐
wcf_title.setAlignment(Alignment.CENTRE); // 文字水平对齐
wcf_title.setWrap(false); // 文字是否换行

// 用于跨行
WritableCellFormat wcf_merge = new WritableCellFormat(BoldFont);
wcf_merge.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条
wcf_merge.setVerticalAlignment(VerticalAlignment.CENTRE); // 文字垂直对齐
wcf_merge.setAlignment(Alignment.CENTRE); // 文字水平对齐
wcf_merge.setWrap(true); // 文字是否换行

//换行加居左
WritableCellFormat wcf_merge_left = new WritableCellFormat(Font);
//wcf_merge.setBorder(Border.ALL, BorderLineStyle.THIN); // 线条
wcf_merge.setVerticalAlignment(VerticalAlignment.CENTRE); // 文字垂直对齐
wcf_merge.setAlignment(Alignment.LEFT); // 文字水平对齐
wcf_merge.setWrap(true); // 文字是否换行

/************** 单元格格式设置完成 *******************/
for(int i=0 ;i<widths.size();i++){
sheet.setColumnView(i, widths.get(i));
}
/***************** 以下是定单内容 **********************/

sheet.mergeCells(0, 0, titlesize, 0);
sheet.addCell(new Label(0, 0, title, wcf_center));

for (int i = 0; i < listtitle.size(); i++) {
sheet.addCell(new Label(i, 1, (String) listtitle.get(i),
wcf_title));
}

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



// 写入数据
List contentlist = (List) listcontent.get(i);

for (int j = 0; j < contentlist.size(); j++) {
String datatype = (String) listtype.get(j);
if ("string".equals(datatype)){
if(iswrap.get(j)){
sheet.addCell(new Label(j, i + 2, (String) contentlist
.get(j), wcf_merge_left)); //换行
}else{
sheet.addCell(new Label(j, i + 2, (String) contentlist
.get(j), wcf_center)); // 不换行
}
}
else if ("float".equals(datatype)) {
jxl.write.Number labelN = new jxl.write.Number(j,
i + 2, new BigDecimal(
(String) contentlist.get(j)).setScale(
2, BigDecimal.ROUND_HALF_UP)
.doubleValue());
sheet.addCell(labelN);
}
}
}

/************ 以上所写的内容都是写在缓存中的,下一句将缓存的内容写到文件中 *********/
workbook.write();
/*********** 关闭文件 **************/
workbook.close();

} catch (Exception e) {
e.printStackTrace();
// log.error("在输出到EXCEL的过程中出现错误,错误原因:" + e.toString());
}

return filesavename;
}


[解决办法]
http://blog.csdn.net/lenotang/article/details/2823230  进这里保证你马上会做了

热点排行