导出到excel表格

<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>

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值