码迷,mamicode.com
首页 > 其他好文 > 详细

导出到excel表格

时间:2015-02-06 13:18:03      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:

<span style="font-size:18px;">/**
 * @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;
	}</span>

导出到excel表格

标签:

原文地址:http://blog.csdn.net/lishuangzhe7047/article/details/43562567

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!