导出到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>

时间: 2024-10-12 14:13:23

导出到excel表格的相关文章

Asp.net--GridView控件--(1)高亮显示当前所在行,(2)高亮显示单击行,(3)绑定数据库数据,(4)分页,(5)导出到excel表格,(6)首列插入序号

//本页代码中的DB类及方法在http://www.cnblogs.com/Deerjiadelu/p/7252769.html中能查询到 (1)Asp.net--GridView控件--高亮显示当前所在行 protected void gvquery_DataBound(object sender, GridViewRowEventArgs e) { //高亮显示光标所在行 if (e.Row.RowType == DataControlRowType.DataRow)//判断当前行是不是数据

java连接MongoDB查询导出为excel表格

背景 因为项目需求.每一个星期须要统计每一个公众号7天的訪问数,月底就须要统计一个月的訪问数,40多个公众号.每次手动统计都须要花费1个小时,总之是一项无技术耗时耗神的手工活. 于是.想写个程序来统计.每次仅仅须要执行下代码,输入一些配置信息就导出为excel表格,直接复制完事,可是水平有限.就仅仅用java写了个. demo下载 下载地址:http://download.csdn.net/detail/musuny/8769499 程序说明 依赖外部jar包 fastjson-1.1.36.j

Python实现数据库一键导出为Excel表格

依赖 Python2711 xlwt MySQLdb 数据库相关 连接 获取字段信息 获取数据 Excel基础 workbook sheet 案例 封装 封装之后 测试结果 总结 数据库数据导出为excel表格,也可以说是一个很常用的功能了.毕竟不是任何人都懂数据库操作语句的. 下面先来看看完成的效果吧. 数据源 导出结果  依赖 由于是Python实现的,所以需要有Python环境的支持 Python2.7.11 我的Python环境是2.7.11.虽然你用的可能是3.5版本,但是思想是一致的

将程序中的表格,导出生成excel表格。使用Aspose插件实现

http://www.cnblogs.com/lanyue52011/p/3372452.html这个是原文地址 /// <summary> /// 点击按钮,将内存表导出excel表格! /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Button1_Cli

mysql数据库表格导出为excel表格

在本地数据库中操作如下: 由于excel表格的编码是GBK,所以导出时要加一个设置字符编码: select * from 某个表 into outfile 'd:/文件名.xls' CHARACTER SET gbk;

用Java导出为excel表格

导出的是最基础的excel表格,没有任何样式. 1 <input type="button" value="输出到Excel" onclick='outputtable()' class="btn btn-info margin-right-20" style="width:80px;" /> 2 3 <script> 4 function outputtable(){ 5 url="outp

使用PHPExcel实现数据批量导出为excel表格

首先需要下载PHPExecel类文件,帮助文档可以参考PHPExcel中文帮助手册|PHPExcel使用方法. 下面直接上例子,是我自己写的一个简单的批量导出数据为excel的例子 前台页面 比较简单,就是一个超链接,跳转到处理页面,超链接也可以跟一些参数(看需求)! <a href="./Process1.php">导出excel表格</a> 后台Process.php页面 /** * 批量导出数据 * @param $arr 从数据库查询出来,即要导出的数据

html页面导出为excel表格

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title></head> <body><div class="tools"> <button type="button" class="btn green" id="excell&q

水晶报表导出完美EXCEL表格

水晶报表自带的导出Excel不太完美(这一点与SQL的SSRS相比就差太远了),导出的文件没有网格线,而且非常容易出现跨行跨列的现象,要做一个符合要求的报表还真要花不少的时间与精力去调试. 下面我简单的说一下自己实现水晶报表的导出问题,如何避免导出的时候出现跨行跨列的现象.其实这里面的没什么技术的问题,更多的是需要耐心而已. 首先,是报表设计器里面,所有的信息须对准基准线,在这过程中,如果列多的话,就要花不少的时去整理了,以下是我设计的一个报表截图.对准了基准线的字段,在边框是会显示红色的标识的