java中如何将数据库中的数据导出到excel中(急,求完整代码) 做了一个项目一个功能是将数据库中的数据导出到excel,不会做求大神指点数据库Excel 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 个人用的比较多的是NPOI,在JAVA里面使用的POI,还是算比较通用的 没表结构,不知道excel里面要什么内容,连数据库是哪种都不知道,然后求完整代码。这帮提问的都是猪托生的吗。 先查出数据,再用jlx或者pol生成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; } 您能不能将您做的发到我的邮箱 [email protected] 谢谢!! 谢谢各位!!希望你们能将自己做的发到小弟邮箱[email protected] 小弟感激不尽 http://blog.csdn.net/lenotang/article/details/2823230 进这里保证你马上会做了 跪求 mysql存储过程的例子 !!!!!!! SQL 2000 连接错误 wsdd如何将一个类中的多个方法发布成服务? proguad如何不混淆指定的类? 关于WebSpher MQ JMS配置和实现文件传输 hibernate一对多问题只在一方控制保存失败的问题 突发奇想,能给Struts的form写一个统一的set方法吗? 事务方式内无法捕获异常 菜鸟发问 2个EJB问题 刚出来工作,觉得很迷茫,没前途 extjs 动态加载的树结点,如何实现点击这个树结点出现相应的js页面?急!急!
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;
}