您的位置:首页 > 其它

jxl导出excel

2016-03-30 11:27 302 查看
[java]
view plain
copy
print?





* @param sql 查询语句
* @param contentTitle excel表格标题名称
* @param filepath 生成excel表格文件的路径
* @param filename excel表格的名称
* @return 生成excel表格文件的路径
*/
public String ToExcel(String sql,String contentTitle,String filepath,String filename) {
WritableWorkbook workbook = null;
try{

/**
* 执行sql语句,查询数据库结果
*/
List<Map> list = null;
//获取结果中的字段
if(list!=null && list.isEmpty()){
//获取导出excel表格中所有的列字段名称
Map<String,String> columnMap = list.get(0);
Set<String> keySet = columnMap.keySet();

/*
* 1,创建excel文件
*/
File file = new File(filepath);
if (!file.exists()) {
file.mkdirs();
}
//获取文件的完整路径
filename =file+"/"+filename+ ".xls";
//创建excel文件
File excelfile = new File(filename);
excelfile.createNewFile();
workbook = Workbook.createWorkbook(new FileOutputStream(excelfile));

/*
* 2,写入excel文件标题和工作簿名称
*/

WritableSheet sheet = workbook.createSheet("sheet名称", 0);
Label nL = null;
jxl.write.WritableFont headerFont = new jxl.write.WritableFont(WritableFont.ARIAL, 18, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
jxl.write.WritableCellFormat headerFormat = new jxl.write.WritableCellFormat(headerFont);
jxl.write.WritableFont titleFont = new jxl.write.WritableFont(WritableFont.ARIAL, 11, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK);
jxl.write.WritableCellFormat titleFormat = new jxl.write.WritableCellFormat(titleFont);

/*
* 3,写入标题
*/
nL = new Label(0, 0, contentTitle, headerFormat);
sheet.addCell(nL);
/*
* 4,写入内容
*/
Label label;
int index = 0;
for(String key:keySet){
nL = new Label(index, 1, key, titleFormat);
sheet.addCell(nL);
for (int j = 0; j < list.size(); j++) {
//得到单元格的列所对应的值
String value = (String) list.get(j).get(key);
//把值放入单元格中
Label obj = new Label(index, j + 2, value);
sheet.addCell(obj);
}
index++;
}
workbook.write();
workbook.close();
}
}catch(Exception e){
e.printStackTrace();
}
return filename;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: